在onLoadIntercept和onPageBegin哪个方法中执行runJavaScript能保证既能注入成功,时机又尽量的靠前。

如果想尽量早的向web环境中注入一些环境变量,在onLoadIntercept和onPageBegin哪个方法中执行runJavaScript能保证既能注入成功,时机又尽量的靠前。 或是还有其他更合适的方法中来执行runJavaScript?

HarmonyOS
2024-06-05 21:48:25
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
OwenOO

1. onControllerAttached是当Controller成功绑定到Web组件时触发该回调,可以保证既能成功注入,时机又尽量靠前。

2. 通过onLoadIntercept注册UA可能会导致crash,同样可以使用onControllerAttached解决。

示例代码:

Web({ src: 'www.baidu.com', controller: this.webviewController }) 
  .onControllerAttached(() => { 
    try { 
      let defaultUA: string = this.webviewController.getUserAgent(); 
      console.info(`Invoke webviewController.getUserAgent/setCustomUserAgent succeed! customUA: ${defaultUA}`); 
      this.webviewController.setCustomUserAgent(`${defaultUA}customUA`); 
      const curUA: string = this.webviewController.getCustomUserAgent(); 
      console.info(`Invoke webviewController.getUserAgent/setCustomUserAgent succeed! err: ${curUA}`); 
    } catch (err) { 
      console.error(`Invoke webviewController.getUserAgent/setCustomUserAgent failed! err: ${JSON.stringify(err)}`); 
    } 
  })
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
分享
微博
QQ
微信
回复
2024-06-06 22:13:11


相关问题
HarmonyOS runJavaScript执行时序
721浏览 • 1回复 待解决
HarmonyOS 如何在比较早时机注入js
204浏览 • 1回复 待解决
HarmonyOS javaScriptProxy注入js不成功
476浏览 • 1回复 待解决
HarmonyOS WebView注入方法
461浏览 • 1回复 待解决
Image缓存配置执行时机
1101浏览 • 1回复 待解决
HarmonyOS 动画执行时机问题
637浏览 • 1回复 待解决
HarmonyOS RN setState执行时机问题
363浏览 • 1回复 待解决
HarmonyOS getContext方法时机问题
930浏览 • 1回复 待解决
延迟任务执行时机及运行线程
2610浏览 • 1回复 待解决