解决微信授权成功后点击按返回键出现空白页和报错的问题


Posted in Javascript onJune 08, 2020

微信授权 的操作可以阅读我的另一篇文章 https://3water.com/article/188237.htm

微信授权我是 在index.vue做的授权,是一个空白页,因为授权需要回调所以这个页面会刷新两次,当我们授权成功进入主页面后,点击返回键或者点击手机的物理返回键,因为浏览器history机制,按物理返回或者返回肯定是会进入这个授权页面的,而此时code已经使用过,会报code错误,而且这个是空白页,多次点击也并不能回到微信的消息列表页,体验极差。。。

我的做法是引入微信的js sdk,使用vue-router 路由导航beforeEach 中的 to(即将到达的页面)和from(当前页面)来做判断,假如to是授权页,from是授权成功后首次进入的页面,在from页面点击返回 ,路由监听到这一满足条件就 调用 微信 wx.closeWindow() 方法即可关闭当前页面回到消息列表页,不是使用vue来开发的项目原理大概也是类似的。

具体代码如下:

①引入微信sdk,npm install 相对应的包即可。

解决微信授权成功后点击按返回键出现空白页和报错的问题

②在路由配置页面配置路由守卫。

解决微信授权成功后点击按返回键出现空白页和报错的问题

router.beforeEach((to, from, next) => {
  // 特殊处理授权成功后的user个人中心页面点击返回退出到微信消息列表页
  let mark = to.fullPath.indexOf('code')
  if (mark !== -1 && from.fullPath === '/user') {
    wx.closeWindow()
  }
})

因为微信授权页授权成功必会在url中带 code,所有我是通过判断路径中是否有 code认定是授权页(可能这种方式)不妥,但能确认to和from两个条件满足即可。

到此这篇关于解决微信授权成功后点击按返回键出现空白页和报错的问题的文章就介绍到这了,更多相关微信返回键出现空白页和报错内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
Prototype使用指南之form.js
Jan 10 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
Sep 02 Javascript
jQuery中clone()方法用法实例
Jan 16 Javascript
JavaScript生成福利彩票双色球号码
May 15 Javascript
对象题目的一个坑 理解Javascript对象
Dec 22 Javascript
深入学习jQuery Validate表单验证
Jan 18 Javascript
JavaScript手机振动API
Jun 11 Javascript
原生js实现class的添加和删除简单代码
Jul 12 Javascript
关于redux-saga中take使用方法详解
Feb 27 Javascript
小程序tab页无法传递参数的方法
Aug 03 Javascript
Windows下Node爬虫神器Puppeteer安装记
Jan 09 Javascript
基于three.js实现的3D粒子动效实例代码
Apr 09 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
Jun 08 #Javascript
基于javascript处理二进制图片流过程详解
Jun 08 #Javascript
vue-router的hooks用法详解
Jun 08 #Javascript
Vue自定义render统一项目组弹框功能
Jun 07 #Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
Jun 07 #Javascript
Electron整合React使用搭建开发环境的步骤详解
Jun 07 #Javascript
vue路由权限校验功能的实现代码
Jun 07 #Javascript
You might like
请php正则走开
2008/03/15 PHP
php操作JSON格式数据的实现代码
2011/12/24 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
2012/09/23 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
2018/05/12 PHP
PHP7引入的"??"和"?:"的区别讲解
2019/04/08 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
jquery+json实现动态商品内容展示的方法
2016/01/14 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
JS功能代码集锦
2016/05/04 Javascript
Jquery $when done then的用法详解
2016/05/20 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
Vue.js实现列表清单的操作方法
2017/11/15 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
react native 原生模块桥接的简单说明小结
2019/02/26 Javascript
[42:20]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
Tod’s英国官方网站:意大利奢华手工制作手袋和鞋履
2019/03/15 全球购物
如何在C# winform中异步调用web services
2015/09/21 面试题
2014年消防工作实施方案
2014/02/20 职场文书
考核评语大全
2014/04/29 职场文书
2014年基层党建工作总结
2014/11/11 职场文书
党员民主生活会材料
2014/12/15 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
复兴之路观后感
2015/06/02 职场文书
化工厂员工工作总结
2015/10/15 职场文书
美甲店的创业计划书模板
2019/08/23 职场文书
redis实现共同好友的思路详解
2021/05/26 Redis
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS