web写入customUseragent最佳实践

如何在每次webview加载地址之前写入一次customUseragent,现在写入时机是参考的官方文档代码如下:

aboutToAppear():void { 
  web_webview.once('webInited', () => { 
  try { 
  // 应用侧用法示例,定制UserAgent。 
  this.ua = this.controller.getUserAgent() + 'xxx'; 
} catch(error) { 
  let e:business_error.BusinessError = error as business_error.BusinessError; 
  console.error(`ErrorCode: ${e.code},  Message: ${e.message}`); 
} 
}) 
} 
 
build() { 
  Column() { 
    Web({ src: $rawfile('index.html'), controller: this.controller }) 
      .userAgent(this.ua) 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

但once内部的代码只会执行一次,再次创建webview之后 不会触发写入customUseragent的操作了。

HarmonyOS
2024-11-07 11:23:59
1209浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

可通过controller.setCustomUserAgent API,示例代码如下:

import webview from '@ohos.web.webview'; 
 
@Entry 
@Component 
struct Index { 
  webviewController = new webview.WebviewController(); 
 
 
  build() { 
    Row() { 
      Column() { 
        Web({ src: '指定网页', 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)}); 
            } 
          }) 
 
 
      } 
      .width('100%') 
    } 
    .height('100%') 
 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
分享
微博
QQ
微信
回复
2024-11-07 17:39:12


相关问题
HarmonyOS jsBridge 最佳实践
1205浏览 • 1回复 待解决
HarmonyOS 事件传递最佳实践咨询
913浏览 • 1回复 待解决
应用内整体换肤的最佳实践
1495浏览 • 1回复 待解决
HarmonyOS 应用开发ArkUI布局最佳实践
971浏览 • 1回复 待解决
网络监听的最佳实践有哪些?
1335浏览 • 1回复 待解决
输出静态库的最佳实践
1093浏览 • 1回复 待解决
HarmonyOS 沉浸式状态栏最佳实践
865浏览 • 1回复 待解决
视频和直播播放HarmonyOS最佳实践
2130浏览 • 1回复 待解决
HarmonyOS ts和ets相互引用的最佳实践
1035浏览 • 1回复 待解决
HarmonyOS 关于音频播放器的最佳实践
864浏览 • 1回复 待解决
HarmonyOS 单列和瀑布流的最佳实践
1148浏览 • 1回复 待解决
APP内整体置灰的最佳实践
1088浏览 • 1回复 待解决
最佳实践是什么
947浏览 • 1回复 待解决
提问
该提问已有2人参与 ,帮助了18人