zoukankan      html  css  js  c++  java
  • ios签名signature失败,刷新页面成功

    问题描述:

      每次刚进页面,signature签名失败,但是刷新页面后,显示signature签名成功。 只有ios是这种情况,安卓没有问题。

      原因:

      IOS传入的 signature签名url,必须是首次进入页面的url,后期如果不刷新页面,签名的时候,ios还是要用,第一次进入页面的url 来签名。 安卓传当前页面即可

    模式:

    下面代码是history模式下,解决ios签名失败,本人亲自尝试,有效。

    如果hash模式,url需要传#前面的url内容(没有尝试过,其他博文看到的)

    /**
    * @Description:  判断IOS,Android系统
    * @date: 2021-11-22 13:43:44
    */
    export const isAorIM = function () {
        var u = navigator.userAgent
        var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)
        var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1 // android终端
        if (isiOS) {
            return true
        } else if (isAndroid) {
            return false
        }
    }
    /**
    * @Description:  通过config接口注入权限验证配置
    * @date: 2021-11-22 13:44:35
    */
    import { weChatSign } from '@/api'
    import { initWxShare } from '@/utils/wxshare'
    export const initShareM = function (type) {
        const parames = {
            userCode: localStorage.getItem('senior-customerList-userCode'),
            url: type === 'ios' ? window.iosInitUrl : location.href  //ios每次传首次进入页面的url, android每次传当前页的url
        }
        console.log('parames', parames)
        weChatSign(parames).then(res => {
            const resData = res.wechatConfig
            initWxShare(resData.appId, resData.timestamp, resData.nonceStr, resData.signature)
        })
    }

    本来想把iosInitUrl变量放到vuex做统一管理,但是亲自尝试后发现,发现放入vuex中,签名会失败。 直接用window 不会报错。 (不知道什么原因)

    
    

    此处代码加入mian.js中,每当切换页面,进入页面后,都会触发

    router.afterEach((to, from) => { if (isAorIM()) { // ios if (window.iosInitUrl === '' || window.iosInitUrl === undefined) { //如果是ios系统,将首次进入页面的url保存到window中 window.iosInitUrl = window.location.href } initShareM('ios') } else { initShareM('Android') } })
  • 相关阅读:
    【java】关于泛型修饰符
    【java】使用lambda和函数接口Comparator
    【js】简单模拟JQuery原理
    【js】事件捕获与冒泡 (这可能是这个知识点 字最少,且讲的最清楚的教程)
    【js】实现 鼠标按下并未松开 事件
    【js】多维排序
    【JS】 初识JS原型
    【MyBatis】逆向工程
    【Struts】struts的DevMode模式
    Linux下gcc相关
  • 原文地址:https://www.cnblogs.com/javascript9527/p/15592375.html
Copyright © 2011-2022 走看看