评论

IOS端 引入JS-SDK config验证失败 params_empty错误

企业微信 企业内部开发应用 引入JS-SDK 需要config权限验证 ios端验证失败,但安卓与鸿蒙端验证成功

错误如图所示,安卓或者鸿蒙端就不贴出来了都是成功。PC端微信开发者工具也没有问题。

排查了很多错误,之前一直以为是前端获取当前URL在iOS端有问题,但最终发现并不是。

直接说原因,问题出在nonceStr(随机串)这个参数上。之前我的写法是

var nonceStr=Math.random();


得到的结果是一个0到1的随机数 比如0.6428883680931894。

但是iOS端最后得到的结果却是params_empty 参数为空,怀疑是这个小数在iOS端就是当0传了。

之后在测试中把这个随机串写死,比如 sadfasdfasdfasdfsadf ,这样在iOS端就验证通过了。

最后找了一个JS生成随机串的函数:

function random_str(len) {
    let = len || 16;
    var cchars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
    var maxPos = cchars.length;
    var pwd = '';
  for (i = 0; i < len; i++) {
    pwd += cchars.charAt(Math.floor(Math.random() * maxPos));
  }
    return pwd;
}


生成了一个16位的随机串,至此iOS也就验证通过了.

官方文档也没有明确的要求这个随机串的格式,另外在安卓端 鸿蒙端 开发者工具端也都没问题,只能理解为iOS端对于这个小数的处理是有问题的.

希望帮助到遇到这个问题的朋友.

最后一次编辑于  2022-02-24  
点赞 0
收藏
评论
登录 后发表内容