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') } })
  • 相关阅读:
    hdu 1754 线段树 注意线段树节点的设计 求什么,设什么
    hdu 4015 概率题
    poj 1950 回溯
    最大上升子序列
    JVM学习博客
    2012
    i am alone at a crossroads
    易知难
    牢骚。。
    something
  • 原文地址:https://www.cnblogs.com/javascript9527/p/15592375.html
Copyright © 2011-2022 走看看