Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.3k views
in Technique[技术] by (71.8m points)

html5 调用微信jssdk 没有调用相机,只显示最近的图片文件。

如图所示,点击调用后
Screenshot_20200519_144738_com.android.documentsui.jpg

代码如下:

 ...mapActions([
      'shellGetImageAndUpload',
    ]),
    // 调用shell/xx 微信、企业微信等选择图片、上传、识别拿到数据,如果是从PC端打开则加载本地文件。
    getPaperInvoice(callback) {
      if (['wechat', 'wx'].includes(this.queryString.shell)) {
        this.shellGetImageAndUpload().then((data) => {
          this.handerOcrResult(data, callback);
        });
      } else {
        this.$refs.imageReader.$el.querySelector('input').click();
      }
    },

// 获取图片并上传

shellGetImageAndUpload({ state, dispatch }) {
  const { shell } = state.queryString;
  return new Promise((resolve) => {
    dispatch(`${shell}/chooseImage`).then((data) => {
      resolve(data);
    });
  });
},
chooseImage(context, callback) {
      wx.chooseImage({
        count: 1, // 默认9
        sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
        sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
        defaultCameraMode: 'normal', // 表示进入拍照界面的默认模式,目前有normal与batch两种选择,normal表示普通单拍模式,batch表示连拍模式,不传该参数则为normal模式。(注:用户进入拍照界面仍然可自由切换两种模式)
        isSaveToAlbum: 1, // 整型值,0表示拍照时不保存到系统相册,1表示自动保存,默认值是1
        success(res) {
          const localIds = res.localIds; // 返回选定照片的本地ID列表,
          // andriod中localId可以作为img标签的src属性显示图片;
          // iOS应当使用 getLocalImgData 获取图片base64数据,从而用于img标签的显示(在img标签内使用 wx.chooseImage 的 localid 显示可能会不成功)
          callback(localIds);
        },
      });
    },

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

没有看到chooseImage被调用,
1)看下是否你手机禁止微信调用摄像头,
2)微信最新版本了吗,
3)换个别人的手机试下,看看是不是微信不支持你的手机。。
另附:我写这个的时候调用的很轻松,没有出现你这个问题


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...