HarmonyOS 鸿蒙Next webview UA设置问题:第一次设置了UA后,router.back返回上一页,再进入时ua丢失

发布于 1周前 作者 h691938207 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next webview UA设置问题:第一次设置了UA后,router.back返回上一页,再进入时ua丢失
我在aboutToAppear里设置了Ua。

web_webview.once('webInited', () => {
  try {
    this.ua = this.webviewController.getUserAgent() + 'unisolutionapp' +
      'Android'
    //UA这里不能加'/'分割,分割后前端无法识别 
    Logger.debug(Constants.TAG, this.ua)
    this.webviewController.setCustomUserAgent(this.ua)
  } catch (error) {
    Logger.warn(Constants.TAG, `WebviewPage的ua错误,ErrorCode: ${error.code},Message: ${error.message}`)
  }
})

在默认的UA后面拼上了’unisolutionapp’ + ‘Android’ ,此时UA有效,然后我router.back返回,然后再进来,UA就变成了默认的,‘unisolutionapp’ + ‘Android’ 也没有了。  web_webview.once也不触发


更多关于HarmonyOS 鸿蒙Next webview UA设置问题:第一次设置了UA后,router.back返回上一页,再进入时ua丢失的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

设置UA 都是在这个生命周期中oncontrollerattached 类似这样

import web_webview from '[@ohos](/user/ohos).web.webview'

import business_error from '[@ohos](/user/ohos).base'

[@Entry](/user/Entry)

[@Component](/user/Component)

struct WebComponent {

  controller: web_webview.WebviewController = new web_webview.WebviewController();

  [@State](/user/State) customUserAgent: string = 'test'

  build() {

    Column() {

      Web({ src: 'www.example.com', controller: this.controller })

        .onControllerAttached(() => {

             let userAgent = this.controller.getUserAgent() + this.customUserAgent;

           //设置自定义UA

            this.controller.setCustomUserAgent(userAgent);

           //获取自定义UA

            console.log("userAgent: " + this.controller.getCustomUserAgent());

        })

    }

  }

}

更多关于HarmonyOS 鸿蒙Next webview UA设置问题:第一次设置了UA后,router.back返回上一页,再进入时ua丢失的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对HarmonyOS 鸿蒙Next webview UA(User-Agent)设置问题,即第一次设置了UA后,通过router.back返回上一页,再进入时UA丢失的问题,这通常与webview的会话管理或页面生命周期管理有关。

在HarmonyOS开发中,webview的UA设置通常是在页面加载或初始化时进行的。如果通过router.back返回上一页后UA丢失,可能是因为页面在返回时重新加载或初始化了webview,导致之前的UA设置被覆盖或重置。

为解决此问题,可以尝试以下方法:

  • 确保UA设置是在webview加载页面的正确生命周期阶段进行的,如onPageStart或类似的回调中。
  • 检查webview的会话管理设置,确保在返回上一页时不会丢失之前的会话状态。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部