Question

J'essaie de comprendre comment obtenir une application web de Dashcode pour distinguer entre un navigateur iPhone et iPad navigateur. Un exemple de ce travail est le Apple iPad Guide de l'utilisateur. Un iPad affiche une interface intégrée de Dashcode slick. L'iPhone est redirigé vers une page Web.

J'ai trouvé un peu d'aide dans le Howto la force DashCode question .

Je modifier le fichier redirector.js. Les forces suivantes l'iPad d'utiliser la mise en page Safari construit par Dashcode au lieu de Safari Mobile, qui est ce que je veux. Quand il est accédait à partir d'un iPhone, il renvoie un fichier non trouvé erreur.

// 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"];
}

Merci pour toutes suggestions.

Était-ce utile?

La solution 2

Je finalement fini par utiliser un code basé sur ce poste à ScottRockers blog. Merci à ughoavgfhw pour me mettre sur la bonne voie.

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"];
}

Autres conseils

Test de window.navigator.userAgent. Il comprendra iPad sur un iPad ou un iPod sur un iPod touch.

var oniPad = /iPad/.test(window.navigator.userAgent);

Je modifie mon fichier redirector.js et est en train de faire exactement ce que vous voulez, est peut-être pas la meilleure façon de le faire, mais il fonctionne, voici mon code, je l'espère qui vous convient:

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"];
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top