当前位置:   article > 正文

【HarmonyOS NEXT】Web组件中如何设置自定义UserAgent_the webviewcontroller must be associated with a we

the webviewcontroller must be associated with a web component

 

【关键字】

Web组件 / WebViewController / UserAgent / onPageBegin / onPageEnd

【问题描述】

build方法中设置了Web组件的controller,在onPageShow方法中通过WebviewController.setCustomUserAgent设置UseAgent时报错,Error message:Init error. The WebviewController must be associated with a Web component。

请问:

问题一:在什么时机设置UserAgent才算是绑定了Web组件?

问题二:有没有对应的示例?

【解决方案】

问题一:

  • 页面生命周期onPageShow回调函数中无法确认WebveiwController与Web组件绑定时序关系。建议首次在Web组件onPageEnd回调函数中(此时WebviewController已绑定)调用WebveiwController.runJavaScript;当应用切换前后台时,在页面生命周期onPageShow回调函数中调用webveiwController.runJavaScript。

  • 在Web组件的onPageBegin/onPageEnd方法中调用WebviewController.setCustomUserAgent可以设置自定义UserAgent。

问题二:绑定示例如下。

  1. import WebView from '@ohos.web.webview';
  2. @Component
  3. export default struct UserAgent {
  4. @State user: string = '';
  5. private controller: WebView.WebviewController = new WebView.WebviewController();
  6. build() {
  7. Column() {
  8. Web({
  9. src: $rawfile('userAgent.html'),
  10. controller: this.controller
  11. })
  12. .width('100%')
  13. .height('50%')
  14. .userAgent(this.user)
  15. .onPageBegin(() => {
  16. this.user = this.controller.getUserAgent() + '123456789'
  17. })
  18. }
  19. .height('100%')
  20. .width('100%')
  21. }
  22. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/307063
推荐阅读
相关标签
  

闽ICP备14008679号