HarmonyOS web里的userAgent,第一次进页面是能正常获取到,第二次进页面就获取不到了, webview.once('webInited'不往里面执行了

HarmonyOS
2024-12-17 13:54:47
1078浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
Excelsior_abit

webview.once接口的规格是,订阅一次指定类型Web事件的回调,当从历史栈中调出来后之前执行过就不会再执行一次

可以参考如下demo:

import web_webview from '@ohos.web.webview';
import business_error from '@ohos.base';

class WebObj {
  constructor() {
  }

  webTest(): string {
    console.log('Web test');
    return "Web test";
  }

  webString(): void {
    console.log('Web test toString');
  }
}

@Entry
@Component
struct WebComponent {
  controller: web_webview.WebviewController = new web_webview.WebviewController()
  @State webTestObj: WebObj = new WebObj();
  @State ua: string = ""

  build() {
    Column() {
      Button('refresh')
        .onClick(() => {
          try {
            this.controller.refresh();
          } catch (error) {
            let e: business_error.BusinessError = error as business_error.BusinessError;
            console.error(`ErrorCode: ${e.code},  Message: ${e.message}`);
          }
        })
      Web({ src: '', controller: this.controller })
        .javaScriptAccess(true)
        .onControllerAttached(() => {
          let userAgent = this.controller.getUserAgent();
          console.log("userAgent: " + userAgent);
          // 应用侧用法示例,定制UserAgent。
          this.ua = this.controller.getUserAgent() + 'xxx';
          console.log("this.ua: " + this.ua);
          this.controller.loadUrl('https://www.huawei.com/');
          this.controller.registerJavaScriptProxy(this.webTestObj, "objTestName", ["webTest", "webString"]);
        })
    }
  }
}
  • 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.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
分享
微博
QQ
微信
回复
2024-12-17 15:57:56


相关问题
如何判断APP是否第一次请求权限?
1117浏览 • 1回复 待解决
HarmonyOS aioxs二次封装
993浏览 • 1回复 待解决
HarmonyOS 权限二次申请
841浏览 • 1回复 待解决
HarmonyOS 每秒执行一次函数
1022浏览 • 2回复 待解决