微信 JSSDK 在 Android(安卓)和 iOS 的一处不一致
16lz
2021-01-25
今天在使用微信的 JSSDK 时遇到一个诡异的问题:同一套代码,在 Android 中正确,在 iOS 中却失效。
于是开启了 debug,发现在执行 wx.config() 函数时就出现了不同的结果,Android 是 {“errMsg”:“config:ok”},而 iOS 是 {“errMsg”:“config:fail”}。即使此时我修改了代码确保传入完全相同的参数。
最终发现是在参数 nonceStr 上出了问题,这是一个用于生成签名的随机字符串,为了方便,我直接使用了一个随机数,因此其真正的类型并不是字符串,结果就出现了 Android 和 iOS 中的不同表现。
我想这处不一致,微信开发团队都未必知道。
其实我们自己在开发程序时也是如此,用户的输入实在有太多的可能,要把每种情况都考虑到要花费太多的精力,甚至有时候根本就是不可能的任务。所以只能妥协,做到确保在输入正确数据时得到正确结果,其他情况下就只能 garbage in garbage out 了。
反过来,从使用者的角度看,就要尽可能的按照规范来做,以避免出现奇怪的结果。
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- 分支和循环(二)(零基础学习C语言)
- android NDK安装
- Android(安卓)工具集合类库 API
- AIDL-AndRoid接口描述语言实现跨进程通讯
- Android仿IOS上拉下拉弹性效果的实例代码
- Android(安卓)JNI配置及入门
- Android(安卓)studio中Kotlin配置和使用的图文详解
- Android中如何以编程方式(programmatically)载入 NinePatch 图片