我的JS and应用程序中有一个错误,似乎只发生在iPhone SE上,而不是在其他模型上。有办法检测特定的设备模型吗?我考虑过使用屏幕大小,但不幸的是,iPhone SE和iPhone 5共享相同的屏幕(据报道为320 x 568),因此我无法区分这两种屏幕。
像http://hgoebl.github.io/mobile-detect.js/这样的JS检测库似乎做不到这一点。
如何使用JS?检测iPhone SE (无论iOS版本)
增编:
用户代理在这里似乎没有帮助,它只针对iOS版本,而不是设备。
iPhone SE,iOS 10:
Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/14A345 Safari/602.1
iPhone 5,iOS 6:
Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25
iPhone 5s,iOS 7:
Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53
发布于 2017-08-14 23:15:30
您可以通过使用JavaScript检查CPU速度来检测差异。
虽然他们做得不对,但下面是一个例子还是这么做了。相反,使用最小执行时间的度量,因为平均会被大延迟(后台任务、垃圾收集等)造成的长尾破坏。
然而,在我的经验中,如果您试图避免过时设备(或版本)中的错误,那么您只应该嗅探模型等。如果您有一个在最近的设备/版本中表示自己的错误,那么它很可能会发生在未来的设备/版本中。当我在较新的设备上发现iOS中的显示错误时,我认为这是由于由于较快的CPU (可能是由于多线程)而产生的争用条件造成的。因为将来的设备拥有更快的CPU,所以在代码进行维护之后,任何错误都会变得更糟,这不是您想要的。
相反,我试图为这个bug找到一个解决办法(在较新的设备上工作的解决方案)。
我确实建议你发送一个错误报告,如果它是简单的和可重复的。尽管在我的经验中,苹果和微软很难修复他们浏览器中报告的错误,不管这个错误有多重要,研究得很好,还是写得很好(苹果只是给出零反馈,而不修复这个错误。微软给出的反馈,然后只是关闭错误的随机原因,没有修复-任何IE/边缘团队可以避免修复错误)。我也很高兴看到Chromium在修复报告中的错误(甚至是复杂和主观的bug)方面做得有多好,这让我惊讶不已;谷歌( Google )对它赞不绝口。
https://stackoverflow.com/questions/40586416
复制相似问题