Dashcode区分iPad和iPhone浏览器

时间:2010-12-17 19:27:51

标签: iphone ipad safari mobile-safari dashcode

我正在试图弄清楚如何让Dashcode网络应用程序区分iPhone浏览器和iPad浏览器。一个有效的例子是Apple iPad User Guide。 iPad将显示光滑的dashcode内置界面。 iPhone被重定向到网页。

我在Howto force DashCode question找到了一些帮助。

我正在编辑redirector.js文件。以下强制iPad使用由Dashcode构建的Safari布局而不是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 个答案:

答案 0 :(得分:4)

测试window.navigator.userAgent。它将包括iPad上的iPad或iPod touch上的iPod。

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

答案 1 :(得分:0)

我最终最终使用了基于this post at ScottRockers blog的一些代码。感谢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"];
}

答案 2 :(得分:0)

我修改了我的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"];
}