Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中检测iOS模拟器_Javascript_Ios_Safari_Simulator - Fatal编程技术网

如何在JavaScript中检测iOS模拟器

如何在JavaScript中检测iOS模拟器,javascript,ios,safari,simulator,Javascript,Ios,Safari,Simulator,我试图检测Safari是在真正的iOS设备上运行还是在iOS模拟器(X代码)中运行 我需要在网站上使用此检测。似乎可以在iOS应用程序中检测到这一点,但我真的需要在网站上使用它,所以它只是JavaScript/PHP 我试图在真实的iOS设备和模拟的iOS设备上比较整个navigatorJS变量。我没有发现任何区别 也许有一些JavaScript函数在iOS模拟器上的工作方式不同?或者我可以试着接触一些传感器 带iOS 12.3.1的真正iPad: { "plugins": {}, "m

我试图检测Safari是在真正的iOS设备上运行还是在iOS模拟器(X代码)中运行

我需要在网站上使用此检测。似乎可以在iOS应用程序中检测到这一点,但我真的需要在网站上使用它,所以它只是JavaScript/PHP

我试图在真实的iOS设备和模拟的iOS设备上比较整个
navigator
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!=“未定义”){
//iOS特定逻辑
}

无法检测是否为X代码iOS模拟器。只有在Google Chrome中使用设备模拟时,它才起作用,这不是这里的问题。这似乎是真的……你在检测这一点时可能会遇到挑战,因为模拟器的目的是尽可能像物理设备一样工作。