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 指定的文档来替换当前文档 ,这个方法是替换当前窗口页面,前后两个页面共用一个
    窗口,所以是没有后退返回上一页的

  • 相关阅读:
    centos 给终端设快捷键
    centos 给鼠标右击添加 “打开终端” 菜单项
    centos 6.X 安装输入法
    centos U盘安装
    js的构造函数
    onresize的定义方式
    两个时间对比
    AMD和CMD的区别
    spring加载配置文件
    cglib代理
  • 原文地址:https://www.cnblogs.com/tengrl/p/10429278.html
Copyright © 2011-2022 走看看