HarmonyOS WebView注入方法

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

如果只需要注册单个对象,可以使用javaScriptProxy,示例如下

class JSClass {
  startFunction() {}
}
struct {
  @State jsObj: JSClass = new JSClass();
  controller: web_webview.WebviewController = new web_webview.WebviewController()

  Web({src: $rawfile('web/source.html'), controller: this.controller})
  .javaScriptProxy({
  object: this.jsObj,
  name: 'jsObj',
  methodList: ['startFunction'],
  controller: this.controller
})
}

如果需要注册多个对象,也可以在初始化时调用

this.controller.registerJavaScriptProxy(
  this.jsObj,
  "jsObj",
  ["startFunction"]
);
this.controller.refresh();

js中需要使用startFuction方法时,调用jsObj.startFunction()即可。

详情可参考

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#javascriptproxy

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-webview-V5#registerjavascriptproxy

分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS webview的JS 注入异常
215浏览 • 1回复 待解决
javaScriptProxy注入次数。
734浏览 • 1回复 待解决
HarmonyOS js调用webview中的方法
502浏览 • 1回复 待解决
HarmonyOS web组件如何注入js文件
36浏览 • 1回复 待解决
HarmonyOS web iframe 注入.js 问题
576浏览 • 1回复 待解决
HarmonyOS javaScriptProxy注入js不成功
34浏览 • 1回复 待解决
登陆时如何注入cookie
828浏览 • 1回复 待解决
HarmonyOS Web组件注入js怎么传递对象
547浏览 • 1回复 待解决
提问
该提问已有0人参与 ,帮助了0人