收藏
回答

h5调用wx.chooseImage、wx.getLocalImgData 拍照或相册闪退问题?

api中使用wx.chooseImage、wx.getLocalImgData相关api 拍照完、选择玩相册照片时候选择上传照片,微信直接闪退

微信号:wxid_xgw4raudtm7521 时间:2023.03.09下午13.40-14:00点之间

回答关注问题邀请回答
收藏

4 个回答

  • 社区技术运营专员--阳光
    社区技术运营专员--阳光
    2023-03-09

    提供下复现链接

    2023-03-09
    有用
    回复 5
    • 走着走着就胖了
      走着走着就胖了
      2023-03-09
      已上传日志wx.ready(() => {
                  wx.chooseImage({
                      count: 5, // 默认9
                      sizeType: ['original',], // compressed可以指定是原图还是压缩图,默认二者都有
                      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
                      success: function (res) {
                          aegis.infoAll({msg: '调用chooseImage成功',});
                          let localIds = res.localIds; // 返回选定照片的本地ID列表
                          let localIdLength = localIds.length; //本地ID列表的长度
                          let uploadCount = 0 // 已上传图片数量
                          let upload = ()=> {
                              aegis.infoAll({msg: "添加图片之前",});
                              imageList.push({
                                  localId:localIds[uploadCount]  
                              }); 
                              aegis.infoAll({msg: imageList,});
                              aegis.infoAll({msg: "调用getLocalImgData之前",});
                              try{
                                  wx.getLocalImgData({
                                      localId: localIds[uploadCount], 
                                      success: function(res) {
                                          try{
                                          aegis.infoAll({msg: '调用getLocalImgData成功'});
                                          let localData = res.localData
                                          aegis.infoAll({msg: localData});
                                          let imageBase64 = '';
                                          if (isiOS) {
                                              //苹果的直接赋值,默认生成'data:image/jpeg;base64,'的头部拼接
                                             imageBase64 = localData;
                                          } else {
                                              //此处是安卓的大坑!在拼接前需要对localData进行换行符的全局替换
                                              imageBase64 = 'data:image/jpeg;base64,' + localData.replace(/\n/g, '');
                                          }
                                          aegis.infoAll({msg: 'imageBase64'});
                                          aegis.infoAll({msg: imageBase64});
                                          imageList[uploadCount].localData = imageBase64;
                                          console.log(imageList,'选择照片')
                                          uploadCount++;
                                          if (uploadCount < localIdLength) {
                                              upload();
                                          } else {
                                              imageList.map((img, num) => {
                                                  Utils.compressImg(img.localData, function (data) {//压缩图片
                                                      aegis.infoAll({msg: '压缩图片'});
                                                      setTimeout(() => {
                                                          self.safeToken();
                                                          self.UploadFileNew(node, data, img.localData,dataType)
                                                      }, 400);
                                                  })
                                              });
                                              return
                                          }
                                      }catch(error){
                                          aegis.infoAll({msg: '调用getLocalImgData走catch'});
                                          aegis.infoAll({msg: error});    
                                      }
                                      },
                                      fail: function(err) {
                                          aegis.infoAll({msg: '调用getLocalImgData失败'});
                                          aegis.infoAll({msg: err});
                                          console.log(err)
                                      }
                                  }); 
                              }catch (err) {
                                  aegis.infoAll({msg: '失败失败',});
                                  aegis.infoAll({msg: err,});
                              }  
                          }
                          upload() 
                      },
                      fail: function(err) {
                          aegis.infoAll({msg: '调用chooseImage失败'});
                          aegis.infoAll({msg: err});
                          console.log(err)
                      }
                  });
              })
      2023-03-09
      回复
    • 走着走着就胖了
      走着走着就胖了
      2023-03-10
      https://uat-b2c.beijinglife.com.cn/bjlife/wechat/my/personal-insurance-claims/third
      2023-03-10
      回复
    • 走着走着就胖了
      走着走着就胖了
      2023-03-10
      ios系统 13.6.1有这个问题
      2023-03-10
      回复
    • 社区技术运营专员--阳光
      社区技术运营专员--阳光
      2023-03-14回复走着走着就胖了
      我这里没复现,你微信什么版本
      2023-03-14
      回复
    • 同步
      同步
      2023-11-15回复社区技术运营专员--阳光
      我也复现了,界面上放多几个拍照容器,我放了十个,只允许拍照,不允许相册选择,一个个拍,拍了页面会白屏一下,到第七八个的时候就闪退了,不可能复现不了的
      2023-11-15
      回复
  • 超合金小强
    超合金小强
    2023-11-30

    这类的问题提了好几年了,每次要么就是让提供时间、微信号,要么代码提供片段、测试案例,要么提供视频上传到腾讯视频,提供了之后他们又告诉你经过他们那边看是好的,就不能认真对待一下这个问题么?你们没有测试人员么,这么容易复现的问题,你们咋就看不到呢,你们后台没有统计闪退率么?

    2023-11-30
    有用
    回复
  • 
    
    2023-11-29

    2023年了官方看看吧!小程序内嵌H5调用chooseImage时,选择拍照时会刷新页面

    2023-11-29
    有用
    回复
  • 走着走着就胖了
    走着走着就胖了
    2023-03-09

    ios系统

    2023-03-09
    有用
    回复 1
    • 罗 🌟小黑
      罗 🌟小黑
      2023-04-03
      请问有解决吗?遇到一样问题
      2023-04-03
      回复
登录 后发表内容