javascript - 如何在 JavaScript 中检测 iOS 模拟器
问题描述
我正在尝试检测 Safari 是在真正的 iOS 设备上还是在 iOS 模拟器(X 代码)中运行。
我需要在网站上使用此检测。似乎可以在 iOS 应用程序中检测到这一点,但我真的需要在网站上使用它,所以它只是 JavaScript / PHP。
我试图比较navigator
真实 iOS 设备和模拟 iOS 设备上的整个 JS 变量。而且我没有发现任何区别。
也许有一些 JavaScript 函数在 iOS 模拟器上的工作方式不同?或者也许我可以尝试访问一些传感器?
带有 iOS 12.3.1 的真实 iPad:
{
"plugins": {},
"mimeTypes": {},
"cookieEnabled": true,
"standalone": false,
"geolocation": {},
"mediaDevices": {},
"webdriver": false,
"appCodeName": "Mozilla",
"appName": "Netscape",
"appVersion": "5.0 (iPad; CPU OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/15E148 Safari/604.1",
"platform": "iPad",
"product": "Gecko",
"productSub": "20030107",
"userAgent": "Mozilla/5.0 (iPad; CPU OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/15E148 Safari/604.1",
"vendor": "Apple Computer, Inc.",
"vendorSub": "",
"language": "en-US",
"languages": [
"en-US"
],
"onLine": true,
"serviceWorker": {}
}
iOS 模拟器中的 iOS 11.2:
{
"plugins": {},
"mimeTypes": {},
"cookieEnabled": true,
"standalone": false,
"geolocation": {},
"mediaDevices": {},
"webdriver": false,
"appCodeName": "Mozilla",
"appName": "Netscape",
"appVersion": "5.0 (iPad; CPU OS 11_2 like Mac OS X) AppleWebKit/604.4.7 (KHTML, like Gecko) Version/11.0 Mobile/15C107 Safari/604.1",
"platform": "iPad",
"product": "Gecko",
"productSub": "20030107",
"userAgent": "Mozilla/5.0 (iPad; CPU OS 11_2 like Mac OS X) AppleWebKit/604.4.7 (KHTML, like Gecko) Version/11.0 Mobile/15C107 Safari/604.1",
"vendor": "Apple Computer, Inc.",
"vendorSub": "",
"language": "en-US",
"languages": [
"en-US"
],
"onLine": true
}
上面的区别是serviceWorker
变量,但原因是它只是在 iOS 11.3 中添加的。
如果您有小费,请告诉我。
解决方案
if (typeof window.ontouchstart != 'undefined') {
// iOS specific logic
}
推荐阅读
- json - 在 Swift 4 中访问嵌套 JSON 字符串的成员
- ios - 从 Openweathermap IOS 4 Xcode 10 获取 json 数据后 UI 不会更新
- c# - Json.NET 从自动属性初始化器获取默认值
- java - 更改树根后获得高度的最快方法是什么?
- azure-eventgrid - 如何查看发送到主题的事件?
- docker - 尝试详细运行 docker 容器或 docker exec 时在 $PATH 中找不到错误可执行文件
- asp.net-core-mvc - 修改asp.net core mvc中DefaultControllerFactory的CreateController方法中的ControllerContext
- javascript - 带有硒的HTML单元驱动程序不单击按钮
- express - 评论未显示在快速应用程序上
- arrays - 错误:找不到“object”类型的不同支持对象“[object Object]”。NgFor 只支持绑定到 Arrays 等 Iterables 如何解决