使用微信jssdk的坑

最近在开发H5的时候碰到了这样一个功能,在H5页面调用扫一扫功能,然而H5是不支持调用原生api,所以只能使用微信的jssdk调用微信的扫一扫了,但是这也是有限制的,只能在微信中打开时才能使用。
在开发过程遇到了很多坑,由于使用微信的jssdk的api首先要授权之后才能使用,这是授权需要的参数:

这些参数是后台生成前端来使用的,在生成签名的时候需要URL,就是这个URL不知道坑了多少人,我在做的时候是在那个页面调用接口在那个页面授权,在vue的history模式中,ios的历史记录中只记录第一次进入时的链接,这就导致了在调用页面授权的URL是不对的,以至于签名总是失败,在Android中是没有问题的。
既然是这样的话那我直接把第一次的网址给存起来,授权时就用这个地址授权不就没问题了,网上有这么说的,但是不知道什么原因,我的还是报错,并不是一直报错,又是也会授权成功,这显然是是不行了,我不知道别人这样做就没问题,而我的有问题,于是我就用了比较暴力的方法,在授权调用接口的页面,进入的时候刷新一下,这样问题就解决了,都说hash模式是没有问题的,我也没有去试试,其实我个人觉得hash模式还是比较好的,可能有人会觉得丑,我并没有这样觉得(嘿嘿),history模式看上去和可能还看一点,但是也需要后台的支持的,不然也是有问题的,如果不是必须使用history模式的,建议使用hash模式,何必跟自己找麻烦呢。
文章功底不怎么样,希望看后对你有什么帮助。