【问题标题】:How to hide layout on android stock browser in AngularJS?如何在 AngularJS 中隐藏 android 股票浏览器上的布局?
【发布时间】:2016-03-14 20:34:09
【问题描述】:

我有一个用 AngularJS 编写并使用 Angular-Material 的 Web 应用程序的已发布测试版。不幸的是,布局在 Android 的股票浏览器(不是 chrome)上完全无法使用并且搞砸了。由于这需要一些时间来解决,我正在尝试显示一个

“抱歉,Beta-Webapp 尚未准备好用于此浏览器,请使用 铬”

消息。

有没有一种简单的方法来检测 Android Stock Browser 并使用 ng-if 和控制器方法隐藏通常的布局?

【问题讨论】:

    标签: android angularjs angular-material


    【解决方案1】:

    tl;dr

    var isStockAndroid = /^Mozilla\/\d+\.\d+\s\(Linux;\sU;/.test(window.navigator.userAgent);
    

    在 Chrome 开发工具中,您可以模仿 Android 浏览器来确定 userAgent 字符串(可通过 window.navigator.userAgent 获得)。然后,您可以确定此用户代理字符串与移动 Chrome 浏览器字符串之间的差异。这将允许您检测当前用户是否在 Android 浏览器上,并且在这种情况下您可以重定向到特殊视图。

    以下是我能够使用 Chrome 开发工具生成的一些用户代理字符串示例:

    铬: "Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.76 Safari/537.36"

    安卓浏览器: "Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"

    在我所做的所有测试中,当用户代理是 Android 浏览器时,U; 似乎总是出现在 "Mozilla/5.0 (Linux; 之后。

    假设这总是正确的(不能保证,但this 网站似乎证实了这一点),您可以使用以下代码来确定当前浏览器是否为 Android 版本:

    var isStockAndroid = /^Mozilla\/\d+\.\d+\s\(Linux;\sU;/.test(window.navigator.userAgent);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-07
      • 2013-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多