众所周知,如果没点开发经验,在接入第三方的接口时,比如微信的,就会陷入一个个坑中,无法自拔。
今天遇到的一个问题,让我这10年CV经验的攻城狮,有点无地自容,羞愧难当。
事情是这样的,有一个H5的项目,需要用到微信的扫一扫功能来扫描二维码的内容。当时想到,这个在之前的项目上应用过,而且没什么问题。于是跟领导说:小问题啦。
于是找到之前成功运行的项目代码,一顿CV操作,编译、发布、手机访问、点击按钮触发,成功的调起了微信扫一扫,可以说一气呵成,我都佩服自己CV的能力。
接着,同事的各类手机开始访问测试,突然,一个同事发出来狡黠的笑声:嘿嘿嘿,我的手机扫不得。顿时,我心里慌了一下,但还是强装镇定地走到同事面前:我来look look。他又给我演示了一遍,确实不行,这就尴尬了。
后来发现,是手机型号的不同导致的,我测试用的是安卓手机,而测试异常的同事,用的是苹果手机。
于是开始排查,记得以前遇到过一个类似的问题,原因是苹果手机获取的window.loacation.href的地址和安卓手机的不一致(苹果手机会多出#号),导致签名失败,从而无法调起。但经过排查发现,签名是成功的。
所以换个思路,开始加各种alert、console.log(通过引入<script src="https://s.url.cn/qqun/qun/qqweb/m/qun/confession/js/vconsole.min.js"></script>就可以在微信浏览器看见控制台了)进行排查,终于发现wx.config中,wx未定义,这就很奇怪了,安卓可以,苹果就不行。
继续排查,最后发现H5应用是用的https的域名,而引入的(http://res.wx.qq.com/open/js/jweixin-1.2.0.js)是http的域名,由于苹果对此有严格的限制,所以导致了苹果手机无法加载jweixin-1.2.0.js,从而导致无法初始化wx组件,因此有了前面提到的问题。
经过一顿百度、一顿AI,最后发现是这个问题,就因为少了个“s”,免不了被同事嘲笑一番了。
所以,编程是一件非常严谨的事情,还是要仔细再仔细。

1036

被折叠的 条评论
为什么被折叠?



