【问题标题】:Detect if Browser is Samsung Phone检测浏览器是否为三星手机
【发布时间】:2012-12-05 05:52:02
【问题描述】:

有没有人想出一个好方法来检测客户端的浏览器是否是三星手机。我特别在寻找三星 S3 和 Note 2,但如果它能够捕获 S2 和 Note 1 或其他三星手机,我可以接受。未来可以证明的东西(即可能与 S4 / Note3 一起工作显然是理想的)。

似乎没有像 iPhone 那样直接的方式来做到这一点,但我们希望为这些设备定制庞大的 S3 和 Note2 用户群。

我知道并非所有 S3 都有相同的用户代理 (http://stackoverflow.com/questions/11282944/what-is-the-samsung-s3-user-agent)

如果有人将手机设置为 PC 版本,那么我不指望能抓住这些 (http://stackoverflow.com/questions/11597940/android-phone-browser-detection)

我意识到这可能是一个没有好的解决方案的问题。

【问题讨论】:

  • 你为什么要这样做?用户代理在检测浏览器和设备方面充其量是不可靠的。
  • 是的,在一个完美的世界里,我们永远不会关注用户代理,但是唉......为了改善用户体验,我们为 iPhone 和 Android 手机提供了略有不同的功能,并且测试设备表明三星是一个水平以上 HTC、LG 等。对于某些功能我可以使用特征检测...
  • 你不需要一个完美的世界。为支持的功能设计,其他人都可以管理它,所以你也可以。 UA 嗅探是一种古老且有缺陷的策略,多年前就被抛弃了。每次出现有问题的新浏览器时,您都必须编写另一个嗅探器和另一个有问题的分支。使用带有合理回退(通常是基本 HTML)的特征检测,您的生活(以及您的客户的生活)将变得更加轻松。 :-)
  • Rob 听起来很棒,那么如何检测浏览器是否支持时间选择器?
  • 什么类型的时间选择器?基于浏览器的?如果您指的是输入type=time,我不会打扰。目前它们的支持很差,一个简单的输入和屏幕提示来指定你想要的格式将会更加健壮。如果您使用的是库和插件,请询问作者。

标签: javascript user-agent samsung-mobile


【解决方案1】:

检测三星手机或平板默认浏览器

if(navigator.userAgent.match(/SAMSUNG|SGH-[I|N|T]|GT-[I|P|N]|SM-[N|P|T|Z|G]|SHV-E|SCH-[I|J|R|S]|SPH-L/i))  {
    alert("it's Samsung default browser");
    // your code for Samsung goes here
}

此正则表达式几乎涵盖了除Samsung Galaxy Nexus 之外的所有三星移动设备,请验证。

【讨论】:

  • 应该是SM-[N|P|T|Z|G]
  • @Anulal S : 如果用户使用三星手机上的 Chrome,userAgent 是否相同?
  • @AniketSuryavanshi - 是的,请尝试并确认
  • 昨天试过了,上面的 userAgent 匹配在三星手机上的 Chrome 上可以正常工作。
【解决方案2】:

显然很难仅检测到三星手机,但如果您检查here,并在您的问题here 中查看用户代理问题,您会注意到用户代理取决于手机型号.

仅限于GS3,型号众多,如GT-I9300[T]、SHV-E210K/L/S、SGH-T999[v]、SGH-I747[m]、SGH-N064 (SC-06D)、SCH-R530、SCH-I535、SPH-L710、GT-I9305[T]、GT-I9308

我不是网络开发人员,我不确定您将如何检测用户代理的特定部分,但如果您可以针对 GS3 的每个型号调整您的代码,我假设这会运作良好。 Note 2 的型号也是如此,当它们出现时,GS4/Note 3。

【讨论】:

  • Imcintyre,使用 Wikipedia 作为模型变体的参考是个好主意
猜你喜欢
  • 2013-02-03
  • 2017-09-25
  • 2012-07-20
  • 1970-01-01
  • 2016-01-01
  • 1970-01-01
  • 2017-01-13
  • 1970-01-01
  • 2012-01-15
相关资源
最近更新 更多