我想检测我的应用运行的用户代理,主要是我想看看它是否运行为:
- Chrome 打包应用,
- Chrome 浏览器页面,
- 安卓 WebView
- 火狐
我运行这段代码,作为开始:
var ua = window.navigator.userAgent;
print(ua);
得到这条输出线
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.76 (Dart) Safari/537.36
但实际上我使用 DARTIUM 运行它,并且有 Chrome/FireFox/IE11
任何想法!
最佳答案
Dartium 将自己标识为 Chrome,但在用户代理中包含“(Dart)”。
您可以通过检查 chrome.runtime.id
来判断您的代码是否作为 chrome 扩展程序/应用程序运行,例如:
// You'll likely need to reference this package:
// https://pub.dartlang.org/packages/chrome
if (window.chrome && window.chrome.runtime && window.chrome.runtime.id) {
window.alert('App!');
}
如果您控制着 Android 应用程序,则可以使用 setUserAgentString
来调整用户代理,这样您就可以在您的网络应用程序中响应它:
myWebView.getSettings().setUserAgentString('Danny/1.0 not Chrome or IE or Webkit');
其他浏览器应该相对容易使用他们的用户代理字符串。
关于android - DART 用户代理检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25688834/