【问题标题】:determine iOS device type确定 iOS 设备类型
【发布时间】:2012-12-19 12:32:57
【问题描述】:

我将如何确定用户所持有的查看器(即 iOS)所使用的设备?在 JavaScript 中? IE iPad、iPod、iPhone 等。

非常感谢! 干杯

编辑:我想回显设备名称,IE ipad IE ipod IE iphone...等

编辑:添加了 PHP 标记,因为我非常喜欢使用 PHP 的一些答案。

【问题讨论】:

  • 从哪里检测到它?来自客户端还是服务器?
  • navigator.userAgent 每一个都不同,如果这是你的问题
  • @JonathanM 客户端。我的意思是我不认为服务器可以在 iOS 上运行...
  • 检查 The MobileESP Project (here's the download page) 获取 JS 解决方案,检查 Mobile-Detect 获取 PHP 解决方案。
  • 当然,这是一个答案。不过,@arttronics 的回答也不错。

标签: php javascript iphone ipad ipod-touch


【解决方案1】:

jsFiddle DEMO ←用您的移动设备访问!

删除 URL 地址栏中的 /show/ 以访问 jsFiddle 编辑页面。

http://detectmobilebrowsers.com/

上述开源方法,DetectMobileBrowers插件,包含您需要的各种格式的源,以快速识别浏览器和移动设备,包括iphone / ipod。

上面的主页也是一个现场演示,可以查看您使用的设备/用户代理。

此外,如果您确实使用该脚本注释布尔值truefalse,则将使用变量(即,在变量名之前使用!! 来测试false)。


编辑:Supported Devices Section 包含检测到的所有设备和用户代理的downloadable archive。提到有一个包含平板电脑支持的模组(例如,iPad 平板电脑)。

示例列表:

apple_generic_iphoneos_mmsclient
apple_ipad_ver1
apple_ipad_ver1_sub42
apple_ipad_ver1_sub43
apple_ipad_ver1_sub431
apple_ipad_ver1_sub5312110
apple_ipad_ver1_subiprod
apple_ipad_ver1_subsimulator
apple_iphone_coremedia_ver1
apple_iphone_coremedia_ver1_1_5
apple_iphone_coremedia_ver1_sub5a347
apple_iphone_coremedia_ver1_sub5b108
apple_iphone_coremedia_ver1_sub5f136
apple_iphone_coremedia_ver1_sub5f137
apple_iphone_coremedia_ver2_1_1
apple_iphone_coremedia_ver2_2
apple_iphone_coremedia_ver2_2_1
apple_iphone_coremedia_ver2_2a
apple_iphone_emulator_ver2
apple_iphone_emulator_ver2_1
apple_iphone_emulator_ver2_2_1
apple_iphone_emulator_ver2_sub52520
apple_iphone_emulator_ver2_sub52520_5f135
apple_iphone_emulator_ver3
apple_iphone_emulator_ver3_1
apple_iphone_emulator_ver4
apple_iphone_emulator_ver5
apple_iphone_ver1
apple_iphone_ver1_china
apple_iphone_ver1_os201
apple_iphone_ver1_somesdk
apple_iphone_ver1_somesdk_subenus
apple_iphone_ver1_sub1a542a
apple_iphone_ver1_sub1c25
apple_iphone_ver1_sub1c28
apple_iphone_ver1_sub3a109a_dadk
apple_iphone_ver1_sub3a109a_plpl
apple_iphone_ver1_sub3a109a_svse
apple_iphone_ver1_sub3a109a_zhcn
apple_iphone_ver1_sub3b48a
apple_iphone_ver1_sub3b48b
apple_iphone_ver1_sub3b48b_nlnl
apple_iphone_ver1_sub3b48b_ptpt
apple_iphone_ver1_sub3b48b_trtr
apple_iphone_ver1_sub3b48b_zhtw
apple_iphone_ver1_suba543
apple_iphone_ver1_suboperamini5
apple_iphone_ver2
apple_iphone_ver2_0_2
apple_iphone_ver2_0_2_subua
apple_iphone_ver2_1
apple_iphone_ver2_1_1
apple_iphone_ver2_1_sub525181
apple_iphone_ver2_1_sub525181_subua
apple_iphone_ver2_1_subcydia
apple_iphone_ver2_2
apple_iphone_ver2_2_1
apple_iphone_ver2_2_1_svse
apple_iphone_ver2_2_sub525181
apple_iphone_ver2_2_sub5g77
apple_iphone_ver2_2_subcydia
apple_iphone_ver2_2_subua
apple_iphone_ver2_sub525181
apple_iphone_ver2_sub5a347
apple_iphone_ver2_sub5b108
apple_iphone_ver3
apple_iphone_ver3_0_1
apple_iphone_ver3_1
apple_iphone_ver3_1_0
apple_iphone_ver3_1_0_sub52816
apple_iphone_ver3_1_1
apple_iphone_ver3_1_2
apple_iphone_ver3_1_2_svse
apple_iphone_ver3_1_3
apple_iphone_ver3_1_3_subenus
apple_iphone_ver3_1_sub7c116a
apple_iphone_ver3_sub7a259g
apple_iphone_ver3_sub7a312g
apple_iphone_ver3_sub7a341
apple_iphone_ver3_sub7a341_enus
apple_iphone_ver4
apple_iphone_ver4_1
apple_iphone_ver4_1_sub8b113
apple_iphone_ver4_1_sub8b117
apple_iphone_ver4_1_sub8b117_cydia
apple_iphone_ver4_1_subgoog_bot
apple_iphone_ver4_2
apple_iphone_ver4_2_1
apple_iphone_ver4_2_5
apple_iphone_ver4_2_6
apple_iphone_ver4_2_7
apple_iphone_ver4_2_8
apple_iphone_ver4_3
apple_iphone_ver4_3_1
apple_iphone_ver4_3_2
apple_iphone_ver4_3_3
apple_iphone_ver4_3_4
apple_iphone_ver4_3_5
apple_iphone_ver4_sub401
apple_iphone_ver4_sub405
apple_iphone_ver4_sub405_eses
apple_iphone_ver4_sub533179
apple_iphone_ver5
apple_iphone_ver5_1
apple_iphone_ver5_subua
apple_ipod_touch_ver1
apple_ipod_touch_ver1_fr
apple_ipod_touch_ver1_no_u
apple_ipod_touch_ver1_os201
apple_ipod_touch_ver1_os211
apple_ipod_touch_ver1_sub3b48b_dadk
apple_ipod_touch_ver1_sub3b48b_fr
apple_ipod_touch_ver1_sub3b48b_jajp
apple_ipod_touch_ver1_sub3b48b_kokr
apple_ipod_touch_ver1_sub3b48b_nlnl
apple_ipod_touch_ver1_sub3b48b_svse
apple_ipod_touch_ver1_sub3b48b_zhcn
apple_ipod_touch_ver1_sub3b48b_zhtw
apple_ipod_touch_ver1_sub4193
apple_ipod_touch_ver1_sub4a102
apple_ipod_touch_ver1_sub4a93_plpl
apple_ipod_touch_ver1_sub4a93_ptpt
apple_ipod_touch_ver1_sub4b1
apple_ipod_touch_ver1_subenus_sub5f137
apple_ipod_touch_ver2
apple_ipod_touch_ver2_1
apple_ipod_touch_ver2_1_engb
apple_ipod_touch_ver2_1_subenus_sub5f138
apple_ipod_touch_ver2_2
apple_ipod_touch_ver2_2_1
apple_ipod_touch_ver2_2_1_sub5h11
apple_ipod_touch_ver2_2_1_sub5h11a
apple_ipod_touch_ver2_2_1_subengb
apple_ipod_touch_ver2_2_sub5g77a
apple_ipod_touch_ver2_sub525181
apple_ipod_touch_ver2_sub5a347
apple_ipod_touch_ver2_sub5c1
apple_ipod_touch_ver3
apple_ipod_touch_ver3_1
apple_ipod_touch_ver3_1_1
apple_ipod_touch_ver3_1_1_subua
apple_ipod_touch_ver3_1_2
apple_ipod_touch_ver3_1_2_sub7d11
apple_ipod_touch_ver3_1_2_subua
apple_ipod_touch_ver3_1_3
apple_ipod_touch_ver3_1_3_subua
apple_ipod_touch_ver3_1_subua
apple_ipod_touch_ver3_subua
apple_ipod_touch_ver4
apple_ipod_touch_ver4_1
apple_ipod_touch_ver4_1_subua
apple_ipod_touch_ver4_2_1
apple_ipod_touch_ver4_2_1_subua
apple_ipod_touch_ver4_3
apple_ipod_touch_ver4_3_1
apple_ipod_touch_ver4_3_1_subua
apple_ipod_touch_ver4_3_2
apple_ipod_touch_ver4_3_2_subua
apple_ipod_touch_ver4_3_3
apple_ipod_touch_ver4_3_3_subua
apple_ipod_touch_ver4_3_4
apple_ipod_touch_ver4_3_5
apple_ipod_touch_ver4_3_subua
apple_ipod_touch_ver4_sub402
apple_ipod_touch_ver4_sub402ua
apple_ipod_touch_ver4_subua
apple_ipod_touch_ver5
apple_ipod_ver1

接受答案后状态:
作为 DetectMobileBrowsers 插件的替代品,另一个 SO Answer on this page by inhan for The MobileESP Project 做了类似的事情。对于此问题的未来访问者,请检查它们。干杯!

【讨论】:

  • 是的,正是我需要的!非常感谢!
  • Solène Le Van,能否请您澄清一下this User Vendor jsFiddle 是否也解决了您的问题 我问是因为如果它对您有用,我会将其包含在我的回答中,因为根本不使用插件。谢谢!
【解决方案2】:

这是我知道的。前段时间我发现了The MobileESP Project (here's the download page),一个 Javascript 解决方案。我发现它的时候看起来不错,所以我保留了一份,但我还没有使用它,所以我不能说太多。

服务器端(我相信它更可靠)我已经在一些项目中使用了Mobile-Detect 类(PHP)。它看起来是目前最准确、最详细的选项。

希望对您有所帮助。

【讨论】:

  • 是的,确实如此! :) (我最擅长 PHP,所以这很酷......)我什至不知道 PHP 可以实现这样的事情!我以为只有 JavaScript 才能做这样的浏览器工作......
  • 答案是我最喜欢的,因为它使用 PHP,但 arttronics 太详细了... :( 我应该选择哪个正确?
  • @SolèneLeVan 选择他的。没问题;)
  • @SolèneLeVan 同样,您可能需要编辑您的问题并添加 PHP 标记,以便其他寻找相同解决方案的用户可以轻松找到您的问题。
  • +1 用于将您的评论转化为答案。我喜欢还有另一种可行的选择(在我的回答中我提到了这个)。此外,detectmobilebrowsers 支持 PHP 和许多其他类型,并且它是开源的。干杯
【解决方案3】:

如果您正在寻找简单的 Javascript 用户代理检测,这应该可以解决问题。

<script type="text/javascript">
if(navigator.userAgent.match(/iPod/i))
    //Found an iPod!
else if(navigator.userAgent.match(/iPad/i))
    //Found an iPad!
else if(navigator.userAgent.match(/iPhone/i))
    //Found an iPhone!
</script>

【讨论】:

  • 我的 iTouch (iPod touch) 作为 iPhone 返回。 :(
  • 您提供的代码不起作用。我的 iPod touch 作为 iPhone 返回。 :(
猜你喜欢
  • 2014-07-26
  • 2012-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多