今天在使用微信的 JSSDK 时遇到一个诡异的问题:同一套代码,在 Android 中正确,在 iOS 中却失效。

于是开启了 debug,发现在执行 wx.config() 函数时就出现了不同的结果,Android 是 {“errMsg”:“config:ok”},而 iOS 是 {“errMsg”:“config:fail”}。即使此时我修改了代码确保传入完全相同的参数。

最终发现是在参数 nonceStr 上出了问题,这是一个用于生成签名的随机字符串,为了方便,我直接使用了一个随机数,因此其真正的类型并不是字符串,结果就出现了 Android 和 iOS 中的不同表现。

我想这处不一致,微信开发团队都未必知道。

其实我们自己在开发程序时也是如此,用户的输入实在有太多的可能,要把每种情况都考虑到要花费太多的精力,甚至有时候根本就是不可能的任务。所以只能妥协,做到确保在输入正确数据时得到正确结果,其他情况下就只能 garbage in garbage out 了。

反过来,从使用者的角度看,就要尽可能的按照规范来做,以避免出现奇怪的结果。

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. 分支和循环(二)(零基础学习C语言)
  3. android NDK安装
  4. Android(安卓)工具集合类库 API
  5. AIDL-AndRoid接口描述语言实现跨进程通讯
  6. Android仿IOS上拉下拉弹性效果的实例代码
  7. Android(安卓)JNI配置及入门
  8. Android(安卓)studio中Kotlin配置和使用的图文详解
  9. Android中如何以编程方式(programmatically)载入 NinePatch 图片

随机推荐

  1. Android(安卓)简单的从本机获取相机功能
  2. PopupWindow的使用
  3. [Android]BroadcastQueue如何分发广播(四)
  4. android调用系统邮件组件(intent匹配的流
  5. Android多分辨率适配
  6. Android文件操作
  7. android中ListView数据刷新时的同步
  8. android 改变bitmap颜色
  9. Android(安卓)使用ContentObserver监听短
  10. rk3288 android 7.1 系统root