当前位置: 首页 > news >正文

鸿蒙项目实战(十):web和js交互

1、实现android的addJavascriptInterface操作

即鸿蒙注入JavaScript对象到window对象中

javaScriptProxy

javaScriptProxy(javaScriptProxy: JavaScriptProxy) 

// xxx.ets
import { webview } from '@kit.ArkWeb';class TestObj {constructor() {}test(data1: string, data2: string, data3: string): string {console.log("data1:" + data1);console.log("data2:" + data2);console.log("data3:" + data3);return "AceString";}asyncTest(data: string): void {console.log("async data:" + data);}toString(): void {console.log('toString' + "interface instead.");}
}@Entry
@Component
struct WebComponent {controller: webview.WebviewController = new webview.WebviewController();testObj = new TestObj();build() {Column() {Button('deleteJavaScriptRegister').onClick(() => {try {this.controller.deleteJavaScriptRegister("objName");} catch (error) {console.error(`ErrorCode: ${(error as BusinessError).code},  Message: ${(error as BusinessError).message}`);}})Web({ src: 'www.example.com', controller: this.controller }).javaScriptAccess(true).javaScriptProxy({object: this.testObj,name: "objName",methodList: ["test", "toString"],asyncMethodList: ["asyncTest"],controller: this.controller,})}}
}

 

2、runJavaScriptExt

执行JavaScript脚本,并通过回调方式返回脚本执行的结果

Web().onPageEnd(async () => {// 执行js方法this.controller.runJavaScriptExt("javascript:window.addEventListener('downFile',function(e){control.downLoadExportFile(JSON.stringify(e.detail))})").then((result) =>{LogUtil.info("返回的result"+JSON.stringify(result));})

 

 

http://www.hskmm.com/?act=detail&tid=13586

相关文章:

  • 【9.24 直播】集群数据管理实战:时序数据库 IoTDB 数据分区、同步与备份详解
  • 函数计算进化之路:AI 应用运行时的状态剖析
  • 01_进程与线程
  • 第六届医学人工智能国际学术会议(ISAIMS 2025)
  • redis 6.0 多线程
  • docker 常用命令与端口映射
  • linux重启mysql服务,几种常见的方法
  • opencv学习记录3
  • 统计分析神器 NCSS 2025 功能亮点+图文安装教程
  • mysql常用语句,常用的语句整理
  • 当写脚本循环更新几百万数据发现很慢怎么办 - 孙龙
  • 服装采购跟单系统的高效管理实践 - 详解
  • 和汽车相关的国内期刊
  • 服务器CPU、内存、磁盘、网络使用率,东方通CPU使用率东方通内存使用率监控脚本
  • 3 网络基础知识+web基础知识+部署Server
  • wxpython图形界面_01_最小基本结构
  • 服务器总资源监控脚本
  • 一个身体,两个身体
  • 006_字典操作
  • 简单理解java虚拟机
  • 东方通中间件嵌入式监控脚本
  • 004_元组操作
  • 个人作业-第二次软件工程作业
  • 代码流水线
  • 洛谷题单指南-进阶数论-P1516 青蛙的约会
  • electron中的几个概念
  • 实用指南:告别IP被封!分布式爬虫的“隐身”与“分身”术
  • 从 “盲调” 到 “精准优化”:SQL Server 表统计信息实战指南
  • 别的摄像机都能国标GB28181注册上,就这台海康摄像机注册不上来,国标配置都反复检查没问题
  • 保护眼睛小程序