因为微信需要授权 授权要跳转code页面 此时浏览器其实就有两个历史记录页面 如果手势左滑 会返回上一个页面 可能是空白的 也可能自动刷新 就变成两个一样的页面
网上的方案都是
function pushHistory() {
var state = {
title: "title",
url: ""
};
(state, "title", "");
}
("popstate", function(e) {...//下面的代码写在这里面})
不过并不满足我的需求 所以在此方案上 添加了一些判断
先是判断ios 还是 android
var ua= ();
var u = ;
var isAndroid = ('Android') > -1 || ('Linux') > -1; //g
var isIOS = !!(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
if (isAndroid) {
pushHistory();
("popstate", function(e) {
//根据自己的需求实现自己的功能
if(("address") === 'inventory' || ("address") === 'enter') {
// alert(("address"));
if( ((/MicroMessenger/i) == 'micromessenger') && ((/wxwork/i) == 'wxwork') ){
// alert("企业微信客户端");
();
}else if( (/micromessenger/i) == 'micromessenger' ){
// alert("微信客户端");
('closeWindow');
}
}
}, false);
}
if (isIOS) {
pushHistory();
("popstate", function(e) {
//根据自己的需求实现自己的功能 这里判断的是首页左滑 退出
if(("address") === 'inventory' || ("address") === 'enter') {
// alert(("address"));
if( ((/MicroMessenger/i) == 'micromessenger') && ((/wxwork/i) == 'wxwork') ){
// alert("企业微信客户端");
(-1);
}else if( (/micromessenger/i) == 'micromessenger' ){
// alert("微信客户端");
();
}
}
}, false);
}
企业微信使用 (-1); 是因为 退出的时候会返回两次 不是停留在聊天框内 会返回到工作台