Dashcode distinguere tra iPad e iPhone Browser
-
11-10-2019 - |
Domanda
Sto cercando di capire come ottenere un'applicazione web Dashcode di distinguere tra un browser iPhone e iPad del browser. Un esempio di lavoro di questo è il di Apple Manuale Utente di iPad . Un iPad visualizza un'interfaccia costruita chiazza di petrolio Dashcode. L'iPhone viene reindirizzato a una pagina web.
Ho trovato un po 'di aiuto nel Howto domanda vigore DashCode .
sto modificando il file redirector.js. I seguenti forze del iPad di utilizzare il layout di Safari costruito da Dashcode, invece di Safari Mobile, che è quello che voglio. Quando è in rassegna a da un iPhone, restituisce un file non trovato errore.
// 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"];
}
Grazie per eventuali suggerimenti.
Soluzione 2
Alla fine ho finito per usare un po 'di codice basato su questo post al blog ScottRockers . Grazie a ughoavgfhw per avermi messo sulla strada giusta.
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"];
}
Altri suggerimenti
Prova window.navigator.userAgent. Esso comprenderà iPad su un iPad o iPod su un iPod touch.
var oniPad = /iPad/.test(window.navigator.userAgent);
modifico il mio file redirector.js e sta facendo esattamente ciò che si vuole, forse non è il modo migliore per farlo, ma si sta lavorando, qui è il mio codice spero che funziona per voi:
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"];
}