• 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') } })
  • 相关阅读:
    B-Tree和B+Tree的区别
    b树和hash树的应用场景
    比较顺序表和链表的优缺点,说说它们分别在什么场景下使用?
    5V与3.3V电平互转
    100M双绞线接头的标准接法
    解决openwrt中文界面异常
    刚刚开通了博客
    openwrt挂载摄像头及视频保存
    mwan3多wan叠加成功
    贝尔金(Belkin)7231-4P tftp救砖
  • 原文地址:https://www.cnblogs.com/javascript9527/p/15592375.html
Copyright © 2020-2023  润新知