谈谈最近java微信开发中遇到的IOS返回错误

来源:互联网 发布:hp软件安装 编辑:程序博客网 时间:2024/05/17 02:44

          一转眼都毕业四五年了,来到csdn也很久了,现在回头看看除了瞎忙基本上没啥长进,遇到原生态的东西只能gg,算了不瞎扯了......

        15年底开始接触微信开发,其中遇到一个自己难解决的问题就是IOS端返回通过授权进来的页面时报错问题,刚开始在网上找了好

多资料但是没有行之有效的办法,大多说的都跟自己的实际情况不同,再加上项目是自己一个人做,没有个可以咨询的前辈,摸索了好久

才找到解决的办法。

         1、 先说说为什么IOS返回授权进来的页面会报错:

                  1)IOS跟安卓的返回区别是:IOS返回会刷新当前页面,而安卓不会,只是机械的返回,对页面不操作。

                  2)微信授权页面的code只能使用一次,第二次是使用就会出错,code不使用,默认5分钟后失效(具体几分钟要看微信开发文档有可能会变)。

         2、 这样一来问题就来了,当IOS返回授权页面时,因为code还是原来的,而IOS还会继续用这个code来刷新当前页面,相当于二次使用code,所以

         必然会报错。我自己研究的解决办法就是把授权页面的code缓存同时缓存通过code拿到的微信信息,如果再一次请求授权页面时,将缓存中的code

拿出来跟这次请求的code对比,如果相同的话,那么就不再用code请求数据,而是使用原先缓存到的数据,如果不相同就用新的code请求数据。

         3、 但是这样一来会有个问题,就是该页面在用微信自带分享,分享出去该页面时该链接会无法使用,因为我们加了之前的判断跟微信自带分享冲突,

所以要想使用以上办法,同时必须做自定义分享......

         4、因为IOS跟安卓返回的不同,还会导致返回带参数的页面时,参数丢失的问题,所以在微信开发中尽量避免url带参数,可以放在缓存中。

以上是我对IOS返回错误自己研究跟探索的结果,应该不是最合理的解决办法,但是也是一种解决问题的途经,希望可以帮助遇到同样问题的人,同时也希

望资深的微信开发大师能够批评指导,帮忙给出更合理的解决方案。


                            一个独自在微信开发中跌摸滚爬的认真小白~

0 0