Come rilevare solo il browser Android nativo

è facile rilevare il dispositivo Android, ma sto riscontrando problemi nel rilevamento SOLO del browser nativo di Android. Il problema è che il browser Dolphin ha una stringa user-agent quasi identica, e mi piacerebbe un modo per sapere se stanno usando il browser nativo o no.

È ansible?

devi semplicemente testare alcune parti della stringa user-agent per assicurarti di avere il browser Android predefinito:

var nua = navigator.userAgent; var is_android = (nua.indexOf('Mozilla/5.0') > -1 && nua.indexOf('Android ') > -1 && nua.indexOf('AppleWebKit') > -1); 

puoi utilizzare quanto segue per assicurarti di non abbinare Chrome all’interno di Android, anche se su molti dispositivi ora, Chrome viene utilizzato come browser predefinito.

 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)); 

MODIFICA: se si desidera proteggere dalla distinzione tra maiuscole e minuscole, è ansible utilizzare quanto segue:

 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)); 

Penso che tu stia cercando questo:

Browser nativo di Android non aggiornato sopra la versione 534.30 in modo da poter filtrare la versione e la combinazione di stringhe UA UA (sopra possiamo presumere che sia un browser Chrome)

Ecco il mio codice JavaScript di esempio:

(Se hai bisogno di uno stile specifico, aggiungerei una class al corpo con il seguente snippet 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 } 

(Alcuni dispositivi Android che segnalano ‘android’ è per questo che abbiamo bisogno della conversazione in minuscolo)

Su un Galaxy S3, ho scoperto che sia Chrome che il browser nativo avevano “AppleWebkit”, quindi ho tolto quel pezzo dalla mia dichiarazione condizionale. Ho anche aggiunto la versione in quanto appare solo nel browser nativo è sembra. Funziona per me come

 var ua = navigator.userAgent; var isAndroidNative = ((ua.indexOf('Mozilla/5.0') > -1) && (ua.indexOf('Android') > -1) && !(ua.indexOf('Chrome') > -1) && (ua.indexOf('Version') > -1)) 
 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'; } 

Puoi farlo con Javascript e la funzione useragent. Quello che devi fare è creare 2 richieste If:

Per prima cosa rilevi il tipo di dispositivo:

 If android, ios, mobile, ipad, iphone Take this setting 

Ora fai tutto il necessario se richieste o una richiesta di un caso per rilevare il tipo di browser

 If chrome, firefox, safari and so on Take this setting 

Questo è nella teoria 🙂