DART用户代理检测

时间:2014-09-05 15:02:58

标签: android google-chrome firefox dart

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

  1. Chrome打包应用
  2. Chrome浏览器页面,
  3. Android webView
  4. 火狐
  5. 我运行此代码,作为开始:

    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

    任何想法!

1 个答案:

答案 0 :(得分:3)

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');

使用其用户代理字符串,其他浏览器应该相对容易。