android - DART 用户代理检测

标签 android google-chrome firefox dart

我想检测我的应用运行的用户代理,主要是我想看看它是否运行为:

  1. Chrome 打包应用,
  2. Chrome 浏览器页面,
  3. 安卓 WebView
  4. 火狐

我运行这段代码,作为开始:

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/

相关文章:

android - 后台运行更新服务

java - 安卓java : How to auto refresh list view

java - 如何修复firefox浏览器中的ajax调用,但在chrome浏览器中工作正常

javascript - 如何判断 DOM 元素在当前视口(viewport)中是否可见?

java - 长按后上下文操作栏太慢

java - 无法解析 android 符号 - android 应用程序 - intelliJ

javascript - Chrome 中的非法访问 Javascript 错误

javascript - 构建一个 chrome 扩展以上传图像(从剪贴板)

android - 私有(private) IP 上的自签名 SSL 证书在 Chrome 中无效

linux - 从 shell 脚本中确定 Firefox 是否已呈现页面