Pregunta

Estoy tratando de encontrar la manera de conseguir una aplicación web Dashcode para distinguir entre un navegador de iPhone y iPad navegador. Un ejemplo práctico de esto es la iPad Guía del usuario . Un iPad mostrará una interfaz integrada mancha de Dashcode. El iPhone se le redirecciona a una página web.

He encontrado un poco de ayuda en el Howto pregunta vigor DashCode .

Estoy editando el archivo redirector.js. Los siguientes fuerzas del iPad para utilizar el diseño Safari construido por Dashcode en lugar de Safari Mobile, que es lo que quiero. Cuando se explora a partir de un iPhone, devuelve un error de archivo no encontrado.

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

Gracias por cualquier sugerencia.

¿Fue útil?

Solución 2

I en última instancia terminó utilizando un código basado en este post en el blog ScottRockers . Gracias a ughoavgfhw por ponerme en el camino correcto.

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

Otros consejos

Prueba window.navigator.userAgent. Incluirá iPad en un iPad o iPod en un iPod touch.

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

modifico mi archivo redirector.js y está haciendo exactamente lo que quiere, tal vez no es la mejor manera de hacerlo, pero se está trabajando, aquí está mi código espero que funcione para usted:

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"];
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top