欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

微信公众号ios和android验签的区别(解决ios验签报错)

程序员文章站 2022-10-03 20:18:14
微信公众号验签ios验签报错微信公众号ios验签报错...

首先看看验签代码,首先说明,这是vue项目用的是history模式
微信公众号ios和android验签的区别(解决ios验签报错)

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官网有一些说明是这样的:
微信公众号ios和android验签的区别(解决ios验签报错)
由此可以看出,它只是让你去掉hash,前面的域名以及后面的参数都是要的(比如:http://1454657xn5.imwork.net/detail?roomId=1),所以直接配置成history模式,他是没有hash的,传完整且动态获取(因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败)的地址即可。

总结

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

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


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

欢迎指正提问~

本文地址:https://blog.csdn.net/huanhuan03/article/details/107401477

相关标签: 公众号 vue