收藏
回答

企业微信H5使用wx.chooseImage()在ios上无法调起摄像头

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.chooseImage() 微信iOS客户端 3.0.27(50999) iphone, ios 14.4 , wechat 7.0.1
shareInst.wx.chooseImage({
  count: 1, // 默认9
  sourceType: ['camera'],
  success: function (resp) {
    console.log("小程序", resp)
    shareInst.wx.checkJsApi({
      jsApiList: shareData.jsApiList,
      success: function (jsApiRes) {
        if (jsApiRes.checkResult.getLocalImgData) {
          shareInst.wx.getLocalImgData({
            localId: resp[0], // 图片的localID
            success: function (res) {
              var localData = res.localData; // localData是图片的base64数据,可以用img标签显示
              if (localData.indexOf(";base64,") == -1) {//兼容处理,安卓获取的图片base64码没有前缀,而苹果有,base64前缀并不固定
                localData = "data:image/jpeg;base64," + localData;//加上base64前缀
              }
              if (localData.indexOf("data:image/jgp;base64,") != -1) {//兼容处理,若是苹果手机,将前缀中的jgp替换成jpeg
                localData = localData.replace("data:image/jgp;base64,", "data:image/jpeg;base64,");
              }
              _this.nimSendFileByUrl(localData);
            }
          });
        } else {
          if (resp.length) {
            shareInst.app.$vux.loading.show({text: `正在发送...`});
          }
          console.log("resp[0]", resp);
          let {localIds} = resp
          console.log("resp[0]", localIds);
          shareInst.wx.uploadImage({
            localId: localIds[0], // 需要上传的图片的本地ID,由chooseImage接口获得
            isShowProgressTips: 1, // 默认为1,显示进度提示
            success: function (res) {
              console.log("成功", res);
              var serverId = res.serverId; // 返回图片的服务器端ID
              let params = {wxCode: shareData.launchParams.wxCode, mediaId: serverId};
              console.log("上传图片的id", params);
              shareInst.Api.getMedia(params).then(mediaResp => {
                if (mediaResp.code == 0 && mediaResp.result.length > 0) {
                  _this.nimSendFileByUrl(mediaResp.result);
                } else {
                  shareInst.app.$vux.loading.hide();
                }
              });
            },
            fail: function (error) {
              console.log("fail", error);
              shareInst.app.$vux.loading.hide();
            },
            cancel: function (error) {
              console.log("cancel", error);
              shareInst.app.$vux.loading.hide();
            }
          });
        }
      }
    });
  },
  fail: function (res) {

  }
})


企业微信H5使用wx.chooseImage()在ios上无法调起摄像头,直接进入失败的回调,请问这个问题是怎么回事呢?代码片段如上

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

1 个回答

  • 企业微信运营专员-千夜
    企业微信运营专员-千夜
    03-15

    你好,请问是H5调用还是小程序调用chooseimage接口,企业微信客户端版本也比较低,现在ios最新版本应该是3.1.3版本了

    03-15
    有用
    回复 8
    • lin
      lin
      03-18
      是在H5里面调用的chooseimage接口,然后将H5通过嵌入在企业微信小程序里面, 我打出的错误信息是说未授权,但是企业微信已经了授权拍照权限的
      03-18
      回复
    • 企业微信运营专员-千夜
      企业微信运营专员-千夜
      03-19回复lin
      这个报错应该是config权限没有通过,可以给下config执行的截图看下
      03-19
      回复
    • lin
      lin
      03-19
      这里显示的错误是 invalid corpid more info at https://open.work.weixin.qq.com/devtool/query?e=40013 , 但是我们核对过了corpid 没问题的啊
      03-19
      回复
    • 企业微信运营专员-千夜
      企业微信运营专员-千夜
      03-22回复lin
      可以给下corpid agentid 时间点这些看下调用config时的日志
      03-22
      回复
    • lin
      lin
      03-26回复企业微信运营专员-千夜
      corpid:ww095a51e55ed1daa0
      agentid:1000003
      时间:  2021-03-26 17:12-17:13
      03-26
      回复
    查看更多(3)
登录 后发表内容
问题标签