2010-02-12 3 views
7

Я разрабатываю мобильную версию веб-сайта. Я в настоящее время с помощью этого Javascript для обнаружения и перенаправления пользователя:Android-браузер для обнаружения эмулятора

if((navigator.userAgent.match(/iPhone/i)) || 
       (navigator.userAgent.match(/Android/i)) || 
       (navigator.userAgent.match(/iPod/i))) 
     { 
     window.location = "http://sitename.com/m/"; 
    } 

прекрасно работает с iPhone и IPod, но не имели успеха с Android. Я использую эмулятор Android в Eclipse. У меня нет Android-гаджета, чтобы проверить его.

Я что-то не так? Кто-нибудь имеет такую ​​же проблему?

ответ

12

Вы должны использовать location.replace вместо window.location

Пример:

if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/Android/i)) || (navigator.userAgent.match(/iPod/i))) { 
    location.replace("http://sitename.com/m/"); 
} 

Я использовал этот код и он работает на iPhone/ITouch и андроид телефонов/устройств.

+0

спасибо, сэр. :) – Vitor

+0

Это тоже помогло мне. Чтобы быть ясным, похоже, что Windows.location не поддерживается на Android. location.replace() работает отлично. – Symmetric

3

Вот моя функция JavaScript для обнаружения Android устройства:

function isAndroid() { 
    var ua = navigator.userAgent; 
    return ua.match(/Android/) 
     || ua.match(/Dalvik/) 
     || ua.match(/GINGERBREAD/) 
     || ua.match(/Linux;.*Mobile Safari/) 
     || ua.match(/Linux 1\..*AppleWebKit/) 
}; 
+1

Спасибо, сэр, я искал это. – nym

0

window.location не работает в Android? В самом деле? Появляется, что я отлично работаю на Android 2.3.4. Какие версии Android вы использовали, когда вы не могли получить window.location для успешной загрузки нового URL-адреса в браузере?

Смежные вопросы