首页 >> js开发 >> js解决微信授权成功后点击按返回键出现空白页和报错的问题js大全
js解决微信授权成功后点击按返回键出现空白页和报错的问题js大全
发布时间: 2021年1月13日 | 浏览:
| 分类:js开发
微信授权 的操作可以阅读我的另一篇文章 https:///article/188237.htmhttps:///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()
}
})
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两个条件满足即可。
router.beforeEach((to, from, next) => {
// 特殊处理授权成功后的user个人中心页面点击返回退出到微信消息列表页
let mark = to.fullPath.indexOf('code')
if (mark !== -1 && from.fullPath === '/user') {
wx.closeWindow()
}
})
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两个条件满足即可。
相关文章:
- jsvuex中store存储store.commit和store.dispatch的用法js大全
- jsAngular利用HTTP POST下载流文件的步骤记录js大全
- js解决vuex数据页面刷新后初始化操作js大全
- jsvue 页面回退mounted函数不执行的解决方案js大全
- jsvue项目使用$router.go(-1)返回时刷新原来的界面操作js大全
- jsElement Input输入框的使用方法js大全
- js关于angular浏览器兼容性问题的解决方案js大全
- JavaScriptthree.js欧拉角和四元数的使用方法
- js使用React-Router实现前端路由鉴权的示例代码js大全
- jsVue-CLI 3 scp2自动部署项目至服务器的方法js大全