Подтвердить что ты не робот

Как обнаружить только собственный браузер для Android

легко обнаружить устройство Android, но у меня возникают проблемы с обнаружением ТОЛЬКО собственного браузера Android. Проблема в том, что браузер Dolphin имеет почти идентичную строку пользовательского агента, и мне бы хотелось узнать, используют ли они родной браузер или нет.

Возможно ли это?

4b9b3361

Ответ 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

Это в теории:)