评论

小程序调用wx.chooseImage程序奔溃的问题

wx.chooseImage会导致小程序奔溃,基于wx.chooseImage的优化方案

就在昨天把老板提的需求写好之后,上传审核提交发布。然后就出现了问题。在用户需要上传图片的时候,只要选择拍照程序就会重新启动。我当场就蒙逼了。小程序的bug还真是数不胜数啊。

下面贴上部分代码:

wx.chooseImage({
   count,
   sizeType: ['original''compressed'],
   sourceType: ['camera''album']


调试的时候,同事的手机使用了之后直接重新启动,或者卡住不动弹。然而另外两位同事却没啥问题,于是在两台小米8都不行,一台Mix2和Mi10都没问题的情况下,安卓开发组的同事下了判断,有可能是内存不足。调用相机是很占系统内存的,导致了小程序奔溃。

在我反复的看文档都找不到解决问题的办法时,我在论坛上看看有啥解决问题的方法。却发现18年就有帖子说出现这种情况了。但是官方没给出没有解决问题的方法。于是我灰头土脸的回到百度了起来。却没有发现一个有用的。都是教导怎么使用wx.chooseImage的demo。

看着代码我突然发现sourceType同时调用两种类型album+camera会占用较大内存,那么单一调用是不是会好一点。虽然这不是解决问题的方法。但是应该可以让更多的手机兼容一下小程序。

于是我就写了个弹窗

const sourceType = Number(type) === 1 ? ['camera'] : ['album']
      wx.chooseImage({
        count,
        sizeType: ['original', 'compressed'],
        sourceType, // camera album
        success (res) {
          // tempFilePath可以作为img标签的src属性显示图片
          const tempFilePaths = res.tempFilePaths

不得不说这效果还是可以的。至少我的小米8兼容了此项做法,皆大欢喜。老板现在要是问起来,接下来的锅让腾讯背上就好。(~ ̄▽ ̄)~ 

最后一次编辑于  10-15  
点赞 2
收藏
评论

3 个评论

  • 无名
    无名
    10-21

    这个问题,我也遇到了,但我这边只选择了拍照一种模式,还是会小程序崩溃

    10-21
    赞同
    回复 1
    • 无名
      无名
      10-21
      有什么解决方法推荐吗
      10-21
      回复
  • wang li
    wang li
    10-15

    还有这个坑啊,我得改改我的小程序了

    10-15
    赞同
    回复
  • Admin²⁰²⁰
    Admin²⁰²⁰
    10-15

    哈,这个我一直在用的方法。

    这个代码多写点,兼容性确实好很多。

    我也碰到过。

    10-15
    赞同
    回复 6
    查看更多(1)
登录 后发表内容