Dashcode различает iPad и браузер iPhone - PullRequest
3 голосов
/ 17 декабря 2010

Я пытаюсь выяснить, как заставить веб-приложение Dashcode различать браузер iPhone и iPad. Рабочим примером этого является Руководство пользователя Apple iPad . IPad будет отображать удобный интерфейс, встроенный в приборную панель. IPhone перенаправляется на веб-страницу.

Я нашел некоторую помощь в вопросе Как заставить DashCode .

Я редактирую файл redirector.js. Следующее заставляет iPad использовать макет Safari, созданный Dashcode вместо Mobile Safari, что я и хочу. При просмотре с iPhone он возвращает ошибку «файл не найден».

// redirect to the more appropriate product
if (DCProductURLs["mobileweb"] && DCshowiPhone) {
    // Changed case so that the Safari layout is displayed on iPad
    // window.location.href = DCProductURLs["mobileweb"];
    window.location.href = DCProductURLs["desktop"];
}

Спасибо за любые предложения.

Ответы [ 3 ]

4 голосов
/ 17 декабря 2010

Тестирование window.navigator.userAgent.Он будет включать iPad на iPad или iPod на iPod touch.

var oniPad = /iPad/.test(window.navigator.userAgent);
0 голосов
/ 01 февраля 2011

Я изменяю свой файл redirector.js и делаю именно то, что вы хотите, возможно, это не лучший способ сделать это, но он работает, вот мой код, который, я надеюсь, вам подходит:

var DCProductURLs = {
    "mobileweb": "../mobile", 
    "desktop": "../safari"
};

var DCshowiPhone = RegExp(" AppleWebKit/").test(navigator.userAgent) && RegExp(" Mobile/").test(navigator.userAgent);

var DCqs = window.location.search.substring(1);
if ((DCshowiPhone && DCqs.length > 0)||screen.width>1000) {
    var components = DCqs.split("&");
    for (var f = 0; f < components.length; f++) {
        if (components[f] == "p=desktop") {
            DCshowiPhone = false;
            break;
        }
    }
}

// redirect to the more appropriate product
//var device= 
if (DCProductURLs["mobileweb"] && DCshowiPhone && screen.width<=960) {
    window.location.href = DCProductURLs["mobileweb"];
}
0 голосов
/ 17 декабря 2010

В конечном итоге я использовал код, основанный на этой записи в блоге ScottRockers . Спасибо ughoavgfhw за то, что поставили меня на правильный путь.

if ((navigator.userAgent.indexOf('iPad') != -1)) {
    window.location.href = DCProductURLs["desktop"];
}

if ((navigator.userAgent.indexOf('iPhone') != -1) || (navigator.userAgent.indexOf('iPod') != -1)) {
    window.location.href = DCProductURLs["mobileweb"];
}
...