在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法_基础知识

最近在使用微信、支付宝、百度钱包实现网页支付,对支付成功将自动关闭页面,对于支付失败,将显示错误信息。当在错误页面的时候,点击返回或者Android物理按键上一步的时候,将关闭页面。

在微信、支付宝、百度钱包中,他们对页面关闭进行了封装,传统的window.close()是无效的,必须要使用它们的js代码才能关闭。

下面是三种移动app的关闭方式:

WeixinJSBridge.call('closeWindow');//微信
AlipayJSBridge.call('closeWebview'); //支付宝
BLightApp.closeWindow();//百度钱包

通过浏览器的头判断是那种浏览器:

var ua = navigator.userAgent.toLowerCase();
f(ua.match(/MicroMessenger/i)=="micromessenger") {
alert("微信客户端");
} else if(ua.indexOf("alipay")!=-1){
alert("支付宝客户端");
}else if(ua.indexOf("baidu")!=-1){
alert("百度客户端");
}

对返回、上一页、后退进行监听,并对history中放入当前页地址:

$(function(){
pushHistory();
window.addEventListener("popstate", function(e) {
}, false);
function pushHistory() {
var state = {
title: "title",
url: "#"
};
window.history.pushState(state, "title", "#");
}
});

整个实现完整代码:

$(function(){
pushHistory();
window.addEventListener("popstate", function(e) {
pushHistory();
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)=="micromessenger") {
WeixinJSBridge.call('closeWindow');
} else if(ua.indexOf("alipay")!=-1){
AlipayJSBridge.call('closeWebview');
}else if(ua.indexOf("baidu")!=-1){
BLightApp.closeWindow();
}
else{
window.close();
}
}, false);
function pushHistory() {
var state = {
title: "title",
url: "#"
};
window.history.pushState(state, "title", "#");
}
});

以上所述是小编给大家介绍的在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索点击按钮刷新当前页面、点击按钮关闭当前页面、点击按钮关闭当前窗口、点击按钮返回上一页、js点击按钮删除当前行,以便于您获取更多的相关知识。

时间: 2024-12-30 17:24:53

在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法_基础知识的相关文章

微信公众号开发 实现点击返回按钮就返回到聊天界面_javascript技巧

话不多说,请看代码 pushHistory(); function pushHistory() { var state = { title: "title", url: "#" }; window.history.pushState(state, "title", "#"); } if (typeof window.addEventListener != "undefined") { window.addE

基于JavaScript实现 获取鼠标点击位置坐标的方法_基础知识

在一些DOM操作中我们经常会跟元素的位置打交道,鼠标交互式一个经常用到的方面,令人失望的是不同的浏览器下会有不同的结果甚至是有的浏览器下没结果,这篇文章就上鼠标点击位置坐标获取做一些简单的总结,没特殊声明代码在IE8,FireFox,Chrome下进行测试兼容 鼠标点击位置坐标相对于屏幕 如果是涉及到鼠标点击确定位置相对比较简单,获取到鼠标点击事件后,事件screenX,screenY获取的是点击位置相对于屏幕的左边距与上边距,不考虑iframe因素,不同浏览器下表现的还算一致. 复制代码 代码

微信公众平台-微信内置浏览器,点击返回强制重新加载前一个页面的问题

问题描述 微信内置浏览器,点击返回强制重新加载前一个页面的问题 需求应该挺常见的吧,从列表页A跳转到详情页B,点击返回的时候希望回到列表页A当初浏览的位置. 其他浏览器都没有问题,因为都是静态保持页面原有的状态,只有微信内置浏览器会在返回后重新加载A页面.但也看到很多公众号的微应用返回后并不会刷新,看了看页面源代码也没看出有什么特别的. 目前已知的解决方案: 1.跳转B页面前在sessionStorage中存放A页面的数据,以及滚动条位置,A页面初始化时判断sessionStorage中的值,有

js-Js html5 实现点击返回,到指定页面?

问题描述 Js html5 实现点击返回,到指定页面? 新窗口打开一个页面,浏览器就有返回功能,点击返回,进入到指定页面 解决方案 指定页面用location不行么?类似下面的跳转到 百度文库. <input type="button" id="link" onclick="window.location.href='http://wenku.baidu.com'" value="走起"></input>

android-不点击任何按钮关闭AlertDialog.Builder

问题描述 不点击任何按钮关闭AlertDialog.Builder AlertDialog.Builder dialog = new AlertDialog.Builder(this); ListDialog.setPositiveButton(R.string.str_choose, new YesListener()); ListDialog.setNegativeButton(R.string.str_cancel, new NoListener()); dialog.show(); 我点

javascript-点击返回按钮就清除session

问题描述 点击返回按钮就清除session 在PHP中点击返回按钮调用js代码,然后紧接着就清除session. 解决方案 你是希望清除还是说这是一个错误? 解决方案二: 前者,你可以在js的onload里面加上你要的js代码,并且ajax提交服务器,服务器清除session,因为后退浏览器可能不主动连接服务器 后者,参考http://blog.sina.com.cn/s/blog_4c29520101017c3e.html 解决方案三: 1,用ajax请求PHP删除session 2,用js操

java点击一个按钮怎么改变另一个窗口标签内容

问题描述 java点击一个按钮怎么改变另一个窗口标签内容 这是类A的按钮JButton pingguo = new JButton(""苹果""); pingguo.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { new FrameP(); } }); pingguo.setForeground(new Color(255 99 71)); p

我在gridview里点击“选择”按钮,希望弹出窗口,在弹出窗口操作完毕后关闭,返回值给父窗口,并对父窗口的数据源重新绑定以刷新gridview。我这么做是不能刷新gridview的,请指教。

问题描述 我在gridview里点击"选择"按钮,希望弹出窗口,在弹出窗口操作完毕后关闭,返回值给父窗口,并对父窗口的数据源重新绑定以刷新gridview.我这么做是不能刷新gridview的,请指教.前端asp.net代码:<asp:GridViewID="GridView1"runat="server"Width="860px"AllowPaging="True"AutoGenerateColum

jquery mobile点击返回按钮,返回到列表页,列表页又刷新了。

问题描述 jquery mobile点击返回按钮,返回到列表页,列表页又刷新了. ////data-rel="back" class="ui-btn-left" data-direction="reverse"> 返回 列表页:放了一个ajax请求返回json绑定append给ul.但是点击详情页的返回按钮时候会刷新页面.在浏览器里面没问题,但是放手机里面就要刷新. $(document).on("pageshow",&