ios验签报错,微信公众号ios和android验签的区别

首先看看验签代码,首先说明,这是vue项目用的是history模式
在这里插入图片描述

ios

ios验签的时候,只认入口页的地址url,包括参数(比如:http://1454657xn5.imwork.net/?token=dsj54958490nfdgnjg)原则上官方也说了,同样的地址只需验签一次,所以你ios只在入口页验签一次,页面路由再怎么变化也和你没关系。
很多网友说ios路由跳转的时候url不变化,但在实际操作中alert了每个页面的地址,是变化的,但是但是但是!!,他只记住了入口页地址,ios他只认入口页的地址,只认入口页!!!所以导致分享出去的时候,永远分享的是入口页。
当然你可以重复验签(每次验签的url都必须和入口页一模一样),只要你再次验签的url和入口页不一样,就会报错无效签名

android

安卓并没有这些毛病,所以在页面路由变化的时候,传参完整的地址url,再次验签就好

hash和history模式

还有大家都讨论的hash和history模式,这里强烈推荐配置成history,这样一来,验签传url的时候就不用做任何分离,直接传完整的url(window.location.href)。
这里url官网有一些说明是这样的:
在这里插入图片描述
由此可以看出,它只是让你去掉hash,前面的域名以及后面的参数都是要的(比如:http://1454657xn5.imwork.net/detail?roomId=1),所以直接配置成history模式,他是没有hash的,传完整且动态获取(因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败)的地址即可。

总结

为了兼容ios和android,要在项目入里判断机型,如果是ios那就只在入口页验签一次,安卓则在路由变化的时候验签。(验签成功了,但是这样一来就会牵扯到分享页面路径问题,下次说)

android:对需要调用jsapi接口的每个页面路由验签
ios: 只对入口页路由验签


一个小提示:毕竟微信总是时不时有些小问题,社区也可以去看看,所以在刚开始进行验签的时候,它会莫名的一会成功一会失败,反正我是这样,后来就好了,不知道是不是普遍问题。

欢迎指正提问~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值