html5 调用微信jssdk 没有调用相机,只显示最近的图片文件。
如图所示,点击调用后
代码如下:
...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);
},
});
},
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
没有看到chooseImage被调用,
1)看下是否你手机禁止微信调用摄像头,
2)微信最新版本了吗,
3)换个别人的手机试下,看看是不是微信不支持你的手机。。
另附:我写这个的时候调用的很轻松,没有出现你这个问题
可以肯定的是 能够调用摄像头进行拍照的,我们之前的项目需求就是只能调用摄像头来拍照,而不能读取手机内存中的照片,需要用到JSSDK,这个在与服务端做签名认证的时候要麻烦点。需要多细心点。查看微信JSSDK 文档配置
wx.chooseImage({
count: 1,
// 默认9
sizeType: [
`'original',` `'compressed'
],// 可以指定是原图还是压缩图,默认二者都有`
sourceType: [
`'album',` `'camera'
],// 可以指定来源是相册还是相机,默认二者都有`
success:
function
(res) {
var
localIds = res.localIds;
// 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
}
});