Как обнаружить только собственный браузер для Android
легко обнаружить устройство Android, но у меня возникают проблемы с обнаружением ТОЛЬКО собственного браузера Android. Проблема в том, что браузер Dolphin имеет почти идентичную строку пользовательского агента, и мне бы хотелось узнать, используют ли они родной браузер или нет.
Возможно ли это?
Ответы
Ответ 1
вам просто нужно протестировать несколько частей строки пользовательского агента, чтобы убедиться, что у вас есть браузер по умолчанию для Android.
var nua = navigator.userAgent;
var is_android = (nua.indexOf('Mozilla/5.0') > -1 && nua.indexOf('Android ') > -1 && nua.indexOf('AppleWebKit') > -1);
вы можете использовать следующее, чтобы убедиться, что вы не совместимы с хром в андроиде, хотя на многих устройствах хром используется как браузер по умолчанию.
var nua = navigator.userAgent;
var is_android = ((nua.indexOf('Mozilla/5.0') > -1 && nua.indexOf('Android ') > -1 && nua.indexOf('AppleWebKit') > -1) && !(nua.indexOf('Chrome') > -1));
EDIT:
Если вы хотите защитить от чувствительности к регистру, вы можете использовать следующее:
var nua = navigator.userAgent.toLowerCase();
var is_android = ((nua.indexOf('mozilla/5.0') > -1 && nua.indexOf('android ') > -1 && nua.indexOf('applewebkit') > -1) && !(nua.indexOf('chrome') > -1));
Ответ 2
На галактике S3 я обнаружил, что и Chrome, и собственный браузер имеют "AppleWebkit", поэтому я взял эту часть из моего условного оператора. Я также добавил версию, которая кажется только в собственном браузере. Это работает для меня как
var ua = navigator.userAgent;
var isAndroidNative = ((ua.indexOf('Mozilla/5.0') > -1) && (ua.indexOf('Android') > -1) && !(ua.indexOf('Chrome') > -1) && (ua.indexOf('Version') > -1))
Ответ 3
Я думаю, вы ищете это:
Собственный браузер Android не обновлен выше версии 534.30, поэтому вы можете фильтровать версию и
Комбинация строки Android UA (выше мы можем предположить, что браузер Chrome)
Здесь мой пример кода JavaScript:
(Если вам нужен специальный стиль, я бы добавил класс в тело со следующим фрагментом JS)
var defectAndroid = $window.navigator && $window.navigator.userAgent.indexOf('534.30') > 0 && $window.navigator.userAgent.toLowerCase().match(/android/);
if (defectAndroid) {
// sample code specific for your Android Stock browser
}
(Некоторые Android-устройства сообщают "андроид", почему нам нужен разговор в нижнем регистре)
Ответ 4
var 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';
}
Ответ 5
Вы можете сделать это с помощью функции Javascript и useragent. Что вам нужно сделать, так это сделать 2 If-request:
Сначала вы обнаруживаете тип устройства:
If android, ios, mobile, ipad, iphone
Take this setting
Теперь вы делаете так, как вам нужны if-запросы или case-request для определения типа браузера
If chrome, firefox, safari and so on
Take this setting
Это в теории:)