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


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 相关文章推荐
JS是否可以跨文件同时控制多个iframe页面的应用技巧
Dec 16 Javascript
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
May 25 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
Nov 02 Javascript
javascript学习笔记(七)利用javascript来创建和存储cookie
Apr 08 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
Jan 16 Javascript
jQuery性能优化的38个建议
Mar 04 Javascript
JS实现网页上随机产生超链接地址的方法
Nov 09 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
Jul 22 Javascript
Angular 4.x中表单Reactive Forms详解
Apr 25 Javascript
JavaScript阻止表单提交方法(附代码)
Aug 15 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
Jun 26 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
Sep 05 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
学习YUI.Ext基础第一天
2007/03/10 Javascript
js parseInt("08")未指定进位制问题
2010/06/19 Javascript
jQuery遍历Form示例代码
2013/09/03 Javascript
jQuery操作input值的各种方法总结
2013/11/21 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
js清空表单数据的两种方式(遍历+reset)
2014/07/18 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
2018/03/15 Javascript
详解vue组件基础
2018/05/04 Javascript
浅谈webpack SplitChunksPlugin实用指南
2018/09/17 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
jquery实现吸顶导航效果
2020/01/08 jQuery
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
原生js实现放大镜组件
2021/01/22 Javascript
Python3基础之基本运算符概述
2014/08/13 Python
python创建和删除目录的方法
2015/04/29 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
2018/01/11 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
Python数据分析pandas模块用法实例详解
2019/11/20 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
2020/06/23 Python
Python 如何测试文件是否存在
2020/07/31 Python
Python实现扫码工具的示例代码
2020/10/09 Python
BRASTY捷克:购买香水、化妆品、手袋和手表
2017/07/12 全球购物
Bulk Powders意大利:运动补充在线商店
2019/02/09 全球购物
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
DELPHI面试题研发笔试试卷
2015/11/08 面试题
化学实验员岗位职责
2013/12/28 职场文书
公司业务员岗位职责
2014/03/18 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
在K8s上部署Redis集群的方法步骤
2021/04/27 Redis
redis内存空间效率问题的深入探究
2021/05/17 Redis