android - 如何区分 Android Chrome 浏览器和应用内 WebView 用户代理?

标签 android webview google-analytics youtube

我目前正在开发一个使用 WebView 加载某些页面的 Android 应用程序(我无法修改 HTML,因为它正在被 iOS 应用程序和网站使用)。 首先我们遇到了问题,即 InApp WebViews 和常规 Android 浏览器的用户代理是相同的(从 Android 4.4 开始使用 Chromium 作为网络引擎)。

应用内网页 View 示例:

Mozilla/5.0 (Linux; Android 5.1.1; Nexus 5 Build/LMY48M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/44.0.2403.117 Mobile Safari/537.36

因此在 Google Analytics 中,我们无法区分使用应用程序的用户和使用普通浏览器访问 HTML 页面的用户。 解决方案是通过以下方式更改 Useragent 字符串:

webView.getSettings().setUserAgentString("Our custom Mobile Android InApp Browser");

这适用于 Google Analytics。

但现在我们遇到了一个问题,即 Youtube 没有将 InApp 用户识别为移动用户,而是为桌面 Youtube 播放器提供服务。

现在我正在寻找以下解决方案之一:

1) 以某种方式让 Google Analytics 将应用内浏览器识别为不同于普通的 Android 浏览器。

2) 为 webview-user-agent 设置一些自定义字符串,使 Youtube 提供其移动版本。

谢谢!

最佳答案

设置自定义 User-Agent 字符串似乎是一个不错的解决方案。

只需确保 Youtube 可以将此自定义字符串识别为移动 Android 设备即可。例如,您可以使用用于存储设备型号的“字段”:

Dalvik/1.6.0 (Linux; U; Android 4.0.3; <Your_custom_marker> Build/IML74K)

关于android - 如何区分 Android Chrome 浏览器和应用内 WebView 用户代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32733555/

相关文章:

java - 如何访问 Google Analytics API

java - 询问倍数权限android 6.0

android - Google Play 商店预启动时崩溃

javascript - 阻止 webview 发出定期请求

google-analytics - Google Analytics(分析)中的产品收入与收入

caching - Varnish 对分析和 Adsense 的影响

java - 在 1 个请求中将多个文件从 Android 上传到 AppEngine

android - 如何在 onCreate() 之前在静态字符串上使用 getString()?

webview - 我如何在 Xamarin Forms WebView(iOS) 中使用 WKWebView 而不是 UIWebView

android - 使用 android :screenOrientation 检测设备方向变化