评论

小程序开发常见问题(二)

1、wx.setStorageSync报错 2、picker下拉列表为什么获取不到长度 3、如何获取音频文件的长度 4、如何获取微信群名称? 5、小程序最多支持多少个节点?

1、wx.setStorageSync和wx.getStorageSync报错问题

为什么说这个问题,是因为这个API确实会报错,并且调用越频繁,报错会越多,先看一下截图:

所以,怀疑微信官方API也有出错的机率,这里没有根治的办法,只能做一些缓解报错次数的办法:减少调用频次,不要在公用方法里面去频繁调用set和get本地缓存;添加try catch,出错之后,可以再调用一次或多次,减少报错的可能性~

**2、picker下拉列表为什么获取不到长度 **

如上图,如果是设置了key的数组,会发现,此时的array的length是0,这可能是小程序的一个bug,length只能自己处理了~

3、如何获取音频文件的长度

如果调用的是新API,wx.createInnerAudioContext可以直接获取duration;如果是低版本,调用wx.startRecord方法时,只能自己写个计数器来处理duration了。

在部分机型上会有个蛋痛的问题,自己写个定时器,和微信内部录音的时间对不上,当录音600秒(十分钟)时,会相关1~3秒。并且在部分安卓手机上,InnerAudioContext.stop()不会自动调用,需要手动去调用stop

4、如何获取微信群名称?

小程序中是没办法直接获取到微信群名称,只有一种方法获取open-gid,然后再通过open-data组件来显示群名称:

<open-data type=“groupName” open-gid=“xxxxxx”></open-data>

open-gid的获取方法:
用户把小程序分享到微信群,会在分享成功后返回shareTickets(因为可以分享到多个群,所以这里是一个数组); 如果用户是从群内点击的小程序卡片,会在小程序的app.onshow里面获取了shareTicket。拿到shareTicket后,再到服务端解密,就可以拿到open-gid~

5、小程序最多支持多少个节点?
小程序可以理解为,被微信包装了一层的H5,页面会有最大节点,建议不要在页面做无限翻页,或者超大数据渲染,这些都可能导致小程序崩溃(如果内存不够时,微信优先杀掉小程序)。

节点数过多时,就直接报错了:invokeWebviewMethod 数据传输长度为 1233778 已经超过最大长度 1048576

1048576是个神奇的数字,大家可以自行百度~

待续…

点赞 0
收藏
评论
登录 后发表内容