Kullanılan aygıtın mobil bir web sitesi için Android olduğunu nasıl anlarım?Android telefonu Javascript/jQuery aracılığıyla algıla
Android platformuna belirli css özniteliklerini uygulamam gerekiyor.
Teşekkür
Kullanılan aygıtın mobil bir web sitesi için Android olduğunu nasıl anlarım?Android telefonu Javascript/jQuery aracılığıyla algıla
Android platformuna belirli css özniteliklerini uygulamam gerekiyor.
Teşekkür
Şuna bir göz atın: http://davidwalsh.name/detect-android
JavaScript:
PHPvar ua = navigator.userAgent.toLowerCase();
var isAndroid = ua.indexOf("android") > -1; //&& ua.indexOf("mobile");
if(isAndroid) {
// Do something!
// Redirect to Android-site?
window.location = 'http://android.davidwalsh.name';
}
:
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
if(stripos($ua,'android') !== false) { // && stripos($ua,'mobile') !== false) {
header('Location: http://android.davidwalsh.name');
exit();
}
js versiyonu da iPad'i yakalar:
var is_mobile = /mobile|android/i.test (navigator.userAgent);
Çalışması, yalnızca Android'in gerektirdiği gibi birçok cihazı yakaladığı için çalışmaz. – NickG
En azından şu gibi bir şey kullanın: /android.*(?=mobile)/i.test(navigator.userAgent); Android telefonu tespit etmek. Ancak bu regex “pahalı” niceleyicileri içerir, bu yüzden Philip'in 2 ayrı testle yanıtı daha uygun olabilir. –
Bu tek liner nasıl?
var isAndroid = /(android)/i.test(navigator.userAgent);
i
değiştirici harf duyarlı eşlemeyi gerçekleştirmek için kullanılır. Cordova AdMob testi projesinden alınan
Tekniği: https://github.com/floatinghotpot/cordova-admob-pro/wiki/00.-How-To-Use-with-PhoneGap-Build
;(function() {
var redirect = false
if (navigator.userAgent.match(/iPhone/i)) {
redirect = true
}
if (navigator.userAgent.match(/iPod/i)) {
redirect = true
}
var isAndroid = /(android)/i.test(navigator.userAgent)
var isMobile = /(mobile)/i.test(navigator.userAgent)
if (isAndroid && isMobile) {
redirect = true
}
if (redirect) {
window.location.replace('jQueryMobileSite')
}
})()
Ben Michal'ın cevabı iyi olduğunu düşünüyorum, ama biz bir adım daha ileri götürün ve dinamik asıl soruya göre bir Android CSS yükleyebilirsiniz :
var isAndroid = /(android)/i.test(navigator.userAgent);
if (isAndroid) {
var css = document.createElement("link");
css.setAttribute("rel", "stylesheet");
css.setAttribute("type", "text/css");
css.setAttribute("href", "/css/android.css");
document.body.appendChild(css);
}
Medya sorgularını kullanırken niçin bunu yapmak istersiniz? JS cihaz algılama, uygulamanızı yüklemek için bir davetiye eklemek gibi yalnızca geliştirme için olmalıdır. Sayfa oluşturma, hiçbir zaman performans sorunlarına ve korkunç bir kullanılabilirlik deneyimine sahip olacağınız için ona güvenmemelidir. – camilokawerin
@camilokawerin Cevabınız yazara yönlendirilmelidir. Onun sorusuna sadece bir cevap veriyordum. Platform spesifik CSS'yi kullanmak istediğiniz durumlar var. Örneğin, arayüzün görsel stilinin cihazla eşleşmesini istiyorsanız. – drlarsen
Burada jQuery'ye gerek yoktur. Daha önce de belirtildiği gibi, kullanıcı aracısı özelliğini kullanarak kontrol etmelisiniz. Diğer platformları da ya da genel olarak bir mobil cihazda olup olmadığınızı merak ediyorsanız, bunu algılayabilen bu is-mobile component'u yazdım. Bu örneklerde görüldüğü gibi
içe ve kullanmak için çekinmeyin:
isMobile.Android() => true/false
isMobile.iOS() => true/false
isMobile.Windows() => true/false
isMobile.KindleFire() => true/false
isMobile.any() => true/false
Çözümünüz harika, ancak hala "android" anahtar kelimesini içeren Mobile Edge kullanıcı aracısı nedeniyle android için kontrol ederken pencerelerinin olmadığını kontrol etmek gerekiyor. Tabii ki bu gerçek windows telefon cihazları eksikliği nedeniyle küçük bir sorundur. Şimdiye kadar bu sayfada gördüğüm en iyisi. – Felype
Girdi @Felype için teşekkürler! Bahsettiğiniz uç durumu ele almak için çözümümü güncelledim. –
size efendim bir efsane vardır. – Xavier
android tabletleri de kontrol etmeyi unutmayın: http://googlewebmastercentral.blogspot.com/2011/03/mo-better-to-also-detect-mobile-user.html –
Bu, her zaman olmadığı anlamına gelmez. Örneğin, Android cihazlar için çalışan Kindle Fire HD cihazları tarafından bildirilen kullanıcı aracıları 'android' kelimesini içermez. – djbp