自动强制移动浏览器进入桌面视图

Dan*_*ood 9 html javascript mobile jquery

在使用Paypal IPN启动付款的项目上完成了大量工作后,我发现这在桌面浏览器上很成功,但在移动设备上完全失败(至少在Chrome上).

经过一些研究,我发现这是由于移动浏览器使用GET方法返回Paypal数据,而不是使用POST的桌面.

如果我点击移动浏览器上的"请求桌面视图",那么这将允许该过程正确完成,但这对最终用户来说显然不是很有趣.

所以,因为我已经走到了一个死胡同(我实际上已经被告知这是一个Paypal问题,无法控制 - 不确定是否真实),有没有办法自动强制桌面在移动浏览器上查看作为最后的手段?

我试图更改视口宽度(<meta name="viewport" content="width=1024"> ),但所有这些都会扩大移动浏览器视图.它实际上并没有像您通过手动单击"请求桌面视图"那样提供正确的桌面视图.

有人知道是否有办法通过HTML或JS强制进入桌面视图,好吗?

谢谢,
丹.

jt2*_*t25 6

通常<meta name="viewport" content="width=1024">在某些情况下就足够了。

但是,如果您有单独的索引mobiledesktop版本,则可以使用以下脚本:

        function parseUA() {
            var u = navigator.userAgent;
            var u2 = navigator.userAgent.toLowerCase();
            return { 
                trident: u.indexOf('Trident') > -1, 
                presto: u.indexOf('Presto') > -1, 
                webKit: u.indexOf('AppleWebKit') > -1, 
                gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, 
                mobile: !!u.match(/AppleWebKit.*Mobile.*/), 
                ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), 
                android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, 
                iPhone: u.indexOf('iPhone') > -1, 
                iPad: u.indexOf('iPad') > -1, 
                webApp: u.indexOf('Safari') == -1, 
                iosv: u.substr(u.indexOf('iPhone OS') + 9, 3),
                weixin: u2.match(/MicroMessenger/i) == "micromessenger",
                ali: u.indexOf('AliApp') > -1,
            };
        }
        var ua = parseUA();

        if (ua.mobile) {
            location.href = './pc.html';
        }
Run Code Online (Sandbox Code Playgroud)

基本上,即使您使用移动设备,它也将被重定向到您的桌面版本。(我个人使用此方法)。

该脚本也可以在此链接中使用

var viewMode = getCookie("view-mode");
if(viewMode == "desktop"){
    viewport.setAttribute('content', 'width=1024');
}else if (viewMode == "mobile"){
    viewport.setAttribute('content', 'width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no');
}
Run Code Online (Sandbox Code Playgroud)