在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法,传统的window.close()是无效的,必须要使用它们的js代码才能关闭。

最近在使用微信、支付宝、百度钱包实现网页支付,对支付成功将自动关闭页面,对于支付失败,将显示错误信息。当在错误页面的时候,点击返回或者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", "#");
}
});

微信扫码,体验更多开发案例

在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法相关推荐

  1. h5页 点击返回时关闭_在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口...

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

  2. 在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口

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

  3. h5页 点击返回时关闭_H5页面监听浏览器关闭、刷新、跳转时提示之onbeforeunload和onunload事件...

    在H5页面中一些场景情况下防止表单数据丢失或者防止用户意外跳走页面,通过js进行监听提示用户,通过onbeforeunload事件和onunload事件实现. onbeforeunload和onunl ...

  4. 【小程序】当前“页面B”动态更改title,点击返回按钮,更改的标题会显示在“来源页面A”...

    最近在做小程序的时候遇到这么一个有趣的问题,就是从A页面跳转到B页面,如果B页面需要在接口加载之后更改title, 并且如果接口请求过慢,还灭有请求完毕时就点击返回按钮回到A页面,这时B页面的请求会继 ...

  5. 排名:百度小程序 微信 + 支付宝 + 百度 + 头条 商城源码-拓客营销

    [ 微信 + 支付宝 + 百度 + 头条 ] 小程序 + APP + 公众号 + PC + H5,注重界面美感与用户体验,打造独特电商系统生态圈 官方网站:https://antuoke.com/ 项 ...

  6. weixin公众号页面返回上一层_微信公众号jssdk打开内置地图点击返回会回到之前页面,怎么退出页面...

    问题描述 在使用公众号jssdk过程中,用户需求点击公众号菜单微信内置地图打开指定地点. 暂用实现过程为 用户打开空白页面 空白页面wx.config wx.openLocation打开内置地图 问题 ...

  7. 微信公众号监听返回按钮关闭当前界面,部分安卓机监听popstate失败【小程序与公众号】

    需求: 微信公众号开发的时候,可能会出现这种需求: 微信公众号内指定某个网页在点击返回键时不回退到上一级,而是直接关闭微信浏览器窗口,用户点击返回按钮本身就是一个返回事件. 解决方案: 利用监听返回事 ...

  8. ajax返回功能,jquery – 记得ajax在点击返回按钮时添加的数据

    我有一个搜索页面,其中每个搜索结果都添加到具有AJAX的页面.这样我可以让用户搜索例如Led Zeppelin,然后做另一个搜索Metallica,但添加到与以前的搜索相同的结果列表. 我的问题是当用 ...

  9. 微信,支付宝,百度钱包三种APP支付成功关闭浏览器

    下面是三种移动app的关闭方式: ? 1 2 3 WeixinJSBridge.call( 'closeWindow' ); //微信 AlipayJSBridge.call( 'closeWebvi ...

最新文章

  1. 常用的Percona-Toolkit工具
  2. NLP 笔记: 序列标注与BIO标注
  3. MFC常用类、成员函数、数组类、Cstring类、CTime类、CPoint类
  4. 从零起步CMFCToolBar用法详解
  5. [PHP] 用JSON 传输图片源码
  6. maven,gradle本地缓存位置
  7. 汇编语言(一)之反转字符串输出
  8. leetcode 53. 最大子序和 动态规划解法、贪心法以及二分法
  9. 云服务器 ECS(CentOS) 安装 Node
  10. MySQL与MySQLI的异同点
  11. [转]解读2014之前端篇:任性的颠覆式改变
  12. session的removeAttribute()和invalidate()的区别
  13. (转载) AT指令详解
  14. 5分钟了解CDN 加速原理
  15. 不管你信不信,这就是程序员996的真实内幕!
  16. JavaScript-修炼之路第二层
  17. 【物联网(IoT)开发】Arduino 简介
  18. Grammar API
  19. 智能体的奇幻漂流之“成都折叠”篇
  20. Word VBA中的光标操作

热门文章

  1. 向童年致敬,没玩过这些游戏的程序员不是好的美少年~
  2. 将USDT赶下铁王座 |链捕手
  3. Java - 有状态bean和无状态bean
  4. html表单调用js方法,使用js提交form表单的两种方法
  5. axture动画原型制作_冰雪奇缘:小彩蛋探秘,雪宝原来是戏精,艾莎老爸原型超威武...
  6. 【微服务】重新理解微服务之它还那么纯粹吗?
  7. 618大战打响,酷雷曼真的能实现元宇宙购物吗?
  8. Java千百问_01基本概念(007)_线程的状态有哪些
  9. Linux环境修改静态IP
  10. Python3.8 + Tkinter: Button设置image属性不显示的问题