Dan*_*ood 9 html javascript mobile jquery
在使用Paypal IPN启动付款的项目上完成了大量工作后,我发现这在桌面浏览器上很成功,但在移动设备上完全失败(至少在Chrome上).
经过一些研究,我发现这是由于移动浏览器使用GET方法返回Paypal数据,而不是使用POST的桌面.
如果我点击移动浏览器上的"请求桌面视图",那么这将允许该过程正确完成,但这对最终用户来说显然不是很有趣.
所以,因为我已经走到了一个死胡同(我实际上已经被告知这是一个Paypal问题,无法控制 - 不确定是否真实),有没有办法自动强制桌面在移动浏览器上查看作为最后的手段?
我试图更改视口宽度(<meta name="viewport" content="width=1024">
),但所有这些都会扩大移动浏览器视图.它实际上并没有像您通过手动单击"请求桌面视图"那样提供正确的桌面视图.
有人知道是否有办法通过HTML或JS强制进入桌面视图,好吗?
谢谢,
丹.
通常<meta name="viewport" content="width=1024">在某些情况下就足够了。
但是,如果您有单独的索引mobile和desktop版本,则可以使用以下脚本:
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)
| 归档时间: |
|
| 查看次数: |
15176 次 |
| 最近记录: |