HarmonyOS WebView的js方法在什么时机注册 ?

我们的h5页面,有和原生交互的地方,但是什么时候来注册(registerJavaScriptProxy)这些原生的方法呢? 如果我写在onPageShow()里面太早,现在只能起一个定时器来延迟注册,但是定时器取多长,感觉都不合适。

HarmonyOS
2024-11-07 11:44:32
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

​registerJavaScriptProxy可以在Web组件初始化完成后调用,下述便是相应方案:

1.如果放在onPageShow太早,web组件本身有onPageBegin和onPageEnd生命周期函数:​

Web({ src: $rawfile(‘test.html’), controller: this.webviewController }).onPageEnd(()=>{ 
  try { 
    this.webviewController.registerJavaScriptProxy(this.testObj, “testObjName”, [“test”, “toString”]); 
  } catch (error) { 
    let e: business_error.BusinessError = error as business_error.BusinessError; 
    console.error(ErrorCode: ${e.code}, Message: ${e.message}); 
  } 
})

​2.也可以把registerJavaScriptProxy的使用放在onControllerAttached这个生命周期中,放在该生命周期里不需要refresh即可生效,请参考链接: ​https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-web-V5#oncontrollerattached10

分享
微博
QQ
微信
回复
2024-11-07 17:11:40
相关问题
HarmonyOS js调用webview方法
573浏览 • 1回复 待解决
注册自定义字体 webview 中无效
2485浏览 • 1回复 待解决
HarmonyOS 页面什么时候注册
421浏览 • 1回复 待解决
HarmonyOS getContext方法时机问题
549浏览 • 1回复 待解决
HarmonyOS 如何在比较早时机注入js
41浏览 • 1回复 待解决
鸿蒙js开发登录注册问题
6152浏览 • 2回复 待解决
HarmonyOS webviewJS 注入异常
357浏览 • 1回复 待解决
JS编写登录注册界面怎么写?
3953浏览 • 1回复 待解决
HarmonyOS WebViewjs交互
247浏览 • 1回复 待解决
Stage模型下HSP安装时机什么
2011浏览 • 1回复 待解决