如何通过 JS 区分 iPhone 5 和 iPhone SE?
Posted
技术标签:
【中文标题】如何通过 JS 区分 iPhone 5 和 iPhone SE?【英文标题】:How to distinguish IPhone 5 and IPhone SE via JS? 【发布时间】:2018-09-26 09:40:28 【问题描述】:有什么好方法可以 100% 检测用户设备是否是 iPhone 5(而不是 SE)。正确地说,我需要知道 ios 设备型号是否
我认为检查 CPU 速度不是设备检测的正确方法。
【问题讨论】:
“我需要知道……”,为什么? iPhone 4、3 和许多类似的设备都可以吗? How to determine which iPhone version the javascript code runs on?的可能重复 @RobG Apple pay 适用于所有 iphone > 5 和 SE。还有一些问题迫使我检测 iPhone 型号,而不仅仅是 Apple Pay 支持。 您只需要测试window.ApplePaySession
是否存在即可。请参阅Checking for Apple Pay Availability 即使检测到设备是可靠的,您仍然无法确定是否支持 Apple Pay。
【参考方案1】:
如果您尝试检测对 Apple Pay 的支持,那么根据Apple developer support web site:
在显示 Apple Pay 按钮或创建 Apple Pay 之前 会话,您必须确保 Apple Pay JS API 可用并且 在当前设备上启用。检查Apple Pay JS API是否 在浏览器中可用,验证 window.ApplePaySession 类存在:
if (window.ApplePaySession)
// The Apple Pay JS API is available.
【讨论】:
我知道如何检测 ApplePaySupport,我也知道 ApplePaySession、iPhone 5 的一些问题并标记为“ApplePay 已启用”。主要问题是关于检测手机型号,ApplePay 不需要你的帮助,谢谢。 @onemantoo — 你的策略是检查 iPhone、iPad、Apple Watch、MacBook 等的兼容型号吗?在日本,您需要 iPhone 8,而中国则存在其他问题。【参考方案2】:您可以询问型号名称,iPhone SE
是 iPhone8,4
,iPhone 5S
是 iPhone6,1
& iPhone6,2
。
【讨论】:
那么如何我能做到这一点? 我不是 js 专家。 即使设备如实报告其型号,OP 仍然不知道 Apple Pay 是否可用或启用。 Apple pay 不是原始问题的一部分。 @HarvantS.Choudhary — 是的,OP 已在 cmets 中添加了这一点。如果他们把它放在问题中会更好。以上是关于如何通过 JS 区分 iPhone 5 和 iPhone SE?的主要内容,如果未能解决你的问题,请参考以下文章
针对 iPhone 4s 和 5 上 xcode 5 中的背景图像问题的自定义 UIButton 对齐 - 添加约束不能解决问题