İOS'u algılama
Ben kullanıcı Ajan koklama hayranı değilim, ama nasıl yapacağını şöyle:
var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
Başka bir yol da güvenmektir navigator.platform
:
var iOS = navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);
iOS
ya olacak true
yafalse
Neden MSStream değil
Microsoft, Gmail'i bir şekilde kandırmaya çalışmak için IE11'e iPhone kelimesini enjekte etti userAgent
. Bu nedenle onu hariç tutmamız gerekiyor. Burada ve burada daha fazla bilgi .
IE11'in güncellenmiş sürümü userAgent
(Windows Phone 8.1 için Internet Explorer Güncellemesi):
Mozilla / 5.0 (Mobil; Windows Phone 8.1; Android 4.0; ARM; Trident / 7.0; Dokunmatik; rv: 11.0; IEMobile / 11.0; NOKIA; Lumia 930) gibi iPhone OS 7_0_3 Mac OS X AppleWebKit / 537 (KHTML, Gecko gibi) Mobil Safari / 537
Normal İfadeler kullanmadan kolayca daha fazla cihaz ekleyin:
function iOS() {
var iDevices = [
'iPad Simulator',
'iPhone Simulator',
'iPod Simulator',
'iPad',
'iPhone',
'iPod'
];
if (navigator.platform) {
while (iDevices.length) {
if (navigator.platform === iDevices.pop()){ return true; }
}
}
return false;
}
iOS()
ya olacak true
yafalse
Not: Her ikisi de navigator.userAgent
ve navigator.platform
kullanıcı veya bir tarayıcı uzantısı tarafından taklit edilebilir.
İOS sürümünü algılama
İOS sürümünü tespit etmenin en yaygın yolu , User Agent dizesinden ayrıştırmaktır . Ancak özellik algılama çıkarımları da vardır * ;
Biz bir gerçeği biliyorum history API
tanıtıldı iOS4 - matchMedia API
in iOS5 - webAudio API
in iOS6 - WebSpeech API
in -iOS7 ve benzeri ..
Not: Aşağıdaki kod güvenilir değildir ve bu HTML5 özelliklerinden herhangi biri daha yeni bir iOS sürümünde kullanımdan kaldırılırsa bozulur. Uyarıldın!
function iOSversion() {
if (/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) {
if (window.indexedDB) { return 'iOS 8 and up'; }
if (window.SpeechSynthesisUtterance) { return 'iOS 7'; }
if (window.webkitAudioContext) { return 'iOS 6'; }
if (window.matchMedia) { return 'iOS 5'; }
if (window.history && 'pushState' in window.history) { return 'iOS 4'; }
return 'iOS 3 or earlier';
}
return 'Not an iOS device';
}