zoukankan      html  css  js  c++  java
  • vue 使用微信JSSDK,在IOS端会授权出错

    原因:

    vue-router切换的时候操作的都是浏览器的历史记录,iOS会把第一次刚进入时的URL作为真实URL,安卓会把当前URL作为真实URL。

    所以导致后端在配置好的授权参数获得的config参数和微信sdk获取的参数是不一样的。

    解决方案: 修改路由  index.js

    {
    path: '/namecheck',
    component: NameCheck,
    beforeEnter:(to,from,next)=>{
    var u = navigator.userAgent;
    var isiOS = !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
    // XXX: 修复iOS版微信HTML5 History兼容性问题
    if (isiOS && to.path !== location.pathname) {
    // 此处不可使用location.replace
    location.assign(to.fullPath)
    } else {
    next()
    }
    },
    name: 'namecheck',
    meta: {
    requireAuth: true,
    }
    },


    window.location.assign(url) : 加载 URL 指定的新的 HTML 文档。 就相当于一个链接,跳转到指定的url,当前页面会转为新页面内容,可以点击后退返回上一个页面。
    window.location.replace(url) : 通过加载 URL 指定的文档来替换当前文档 ,这个方法是替换当前窗口页面,前后两个页面共用一个
    窗口,所以是没有后退返回上一页的

  • 相关阅读:
    Epplus导出excel
    访问GitHub需要修改hosts
    如何将你的.Net Core程序部署成为服务
    生成雪花Id类
    文件操作帮助类
    工作流-WikeFlow
    《C语言进阶剖析》课程目录
    《C++深度解析》课程目录
    USB URB的status及其代表的意义
    数据结构优秀博文整理
  • 原文地址:https://www.cnblogs.com/tengrl/p/10429278.html
Copyright © 2011-2022 走看看