【问题标题】:Is it possible to separate google chrome browser from default android browsers via js?是否可以通过 js 将 google chrome 浏览器与默认的 android 浏览器分开?
【发布时间】:2015-05-21 00:30:08
【问题描述】:

如果我通过 Chrome 访问http://zeno.github.io/mobile-detect-demo/,通过我的三星上称为“Internet”的浏览器,我看到它们都被称为“Chrome”。但是默认浏览器在打开深层链接时有不同的行为。

我需要了解,什么时候是真正的 chrome,通过 Google 提供,什么时候是自定义设备提供商的浏览器构建在我的网络应用程序中。

是否可以通过 javascript 做到这一点?我能看到的唯一区别是,对于我的默认浏览器,有一个选项“is samsung = true”。但是还有很多其他设备制造商的其他浏览器。

我怎么能看到用户使用原来的谷歌浏览器来允许他使用附加功能?

【问题讨论】:

  • 这样做通常不是个坏主意吗?你想回到过去为 IE、Mozilla、Opera 和其他任何东西编写几乎独立的网站的糟糕日子吗?
  • 您需要 Chrome 中的哪些功能在默认的 android“Internet”浏览器中不可用?
  • @scnliffe 默认的 android "Internet" 浏览器无法打开深层链接,我必须使用 iframe 解决这个问题。对于原始 chrome,我必须使用不同的方法 - 直接打开这些链接。
  • 你能定义“深层链接”吗?我不明白为什么浏览器(任何浏览器)都无法打开链接……不管它在网站上有多“深”?
  • 我在打开本机应用程序链接时遇到问题,例如 facebook fb://profile/123456。一些浏览器(比如 android 的默认“Internet”)显示令人沮丧的错误,我必须解决它们。

标签: javascript android google-chrome


【解决方案1】:

使用此内容创建一个 HTML 页面并将其加载到每个浏览器中:

<script>alert(navigator.userAgent);</script>

然后,您可以“嗅探”不同之处并相应编码。

请注意,尽管通常不赞成用户代理嗅探,但最好的方法是测试您需要的功能。例如地理位置、indexedDB 等,然后进行相应的编码

【讨论】:

    【解决方案2】:

    是的,您可以在 Javascript 中解析 UserAgent - 有关一些文档,请参阅 https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID/userAgent。每个浏览器都会发送一个唯一的 UserAgent 字符串,以便您识别它。但是,有些浏览器会伪装成其他浏览器(如 Chrome),专门绕过这些检查。

    如果可以的话,最好检测特定功能而不是浏览器。

    有关现有的 JavaScript UserAgent 解析器,请参阅 https://github.com/faisalman/ua-parser-js

    【讨论】:

    • 欢迎来到 Stack Overflow!在答案中提供来自块引用链接的相关信息有助于提高响应的可持续性 - 即使来自非常好的来源,
    猜你喜欢
    • 2023-03-28
    • 2011-03-01
    • 2014-09-15
    • 2021-09-11
    • 2015-07-14
    • 2014-08-10
    • 2020-05-05
    • 1970-01-01
    • 2021-03-26
    相关资源
    最近更新 更多