İ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);
iOSya olacak trueyafalse
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 trueyafalse
Not: Her ikisi de navigator.userAgentve navigator.platformkullanı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 APItanıtıldı iOS4 - matchMedia APIin iOS5 - webAudio APIin iOS6 - WebSpeech APIin -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';
}