在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)}`); 
    } 
  })
分享
微博
QQ
微信
回复
2024-06-06 22:13:11
相关问题
HarmonyOS runJavaScript执行时序
78浏览 • 1回复 待解决
Image缓存配置执行时机
624浏览 • 1回复 待解决
HarmonyOS 动画执行时机问题
127浏览 • 1回复 待解决
HarmonyOS 拦截处理完业务执行方法
144浏览 • 1回复 待解决
HarmonyOS getContext方法时机问题
185浏览 • 1回复 待解决
JSTS哪个平时更常用?
2791浏览 • 1回复 已解决
延迟任务执行时机及运行线程
1964浏览 • 1回复 待解决