HarmonyOS鸿蒙Next中如何启动app时第一时间获取到app的UserAgent?

HarmonyOS鸿蒙Next中如何启动app时第一时间获取到app的UserAgent?

H3 title问题:如何启动app时第一时间获取到app的UserAgent?

想法:想在app启动进入到EntryAbility的onCreate方法时候,就直接获取到app的userAgent信息。

当前情况:只能在Entry入口页面通过webView的形式获取到,获取的时机对于我来说太慢了。

@State user: string = '';
private controller: webview.WebviewController = new webview.WebviewController();

build() {
  Column() {
    Web({ src: 'www.baidu.com', controller: this.controller })
      .onPageBegin(() => {
        let customUserAgent = this.controller.getUserAgent()
        this.user = customUserAgent + "122344"
        console.log("userAgent:",customUserAgent,"user:",this.user)
      })
  }
  .height('100%')
  .width('100%')
}

更多关于HarmonyOS鸿蒙Next中如何启动app时第一时间获取到app的UserAgent?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

楼主您好,

目前获取UA 必须使用controller的方法,要使用controller中的方法 必须绑定web组件。当前不支持非component中获取UA。

更多关于HarmonyOS鸿蒙Next中如何启动app时第一时间获取到app的UserAgent?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


如果是这样话,我需要考虑手动拼接UA信息,不过这个手动拼接UA所需要的信息,官方也没有一个充分的获取介绍,请问你知道该如何获取吗?

这个文档看过了,缺失部分UA关键信息。

同需要

Mozilla/5.0 (AAAAA; OpenHarmony 4.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 ArkWeb/4.1.6.1 Mobile

最好能直接是同步方法获取到UserAgent信息,目前能想到的就是手动拼接UserAgent信息,类似这样:Mozilla/5.0 ({deviceType}; {OSName} {OSVersion}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 ArkWeb/{ArkWeb VersionCode} {Mobile},但是这个拼接的信息怎么获取?官网上并没有充分的说明[1]

在HarmonyOS鸿蒙Next中,启动App时第一时间获取UserAgent可以通过WebView组件实现。你可以在onStartonCreate生命周期方法中初始化WebView,并通过WebViewgetSettings().getUserAgentString()方法获取UserAgent。示例代码如下:

import webView from '@ohos.web.webview';

onStart() {
    let webViewInstance = webView.WebView.createInstance();
    let userAgent = webViewInstance.getSettings().getUserAgentString();
    console.log("UserAgent: " + userAgent);
}

此方法确保在App启动时立即获取UserAgent。

在HarmonyOS鸿蒙Next中,启动App时第一时间获取UserAgent可以通过以下步骤实现:

  1. EntryAbility中重写onStart方法:在onStart方法中,通过AbilityContext获取WebView实例。
  2. 设置WebViewUserAgent:通过WebViewgetSettings()方法获取WebSettings,然后调用getUserAgentString()方法获取UserAgent。
  3. 存储或使用UserAgent:将获取到的UserAgent存储在全局变量中,或直接使用。

示例代码:

@Override
public void onStart(Intent intent) {
    super.onStart(intent);
    WebView webView = new WebView(this);
    String userAgent = webView.getSettings().getUserAgentString();
    // 存储或使用userAgent
}

通过这种方式,可以在App启动时第一时间获取到UserAgent。

回到顶部