<a href="javascript:void(0)" onclick="use_wx_camera()">调取微信拍照</a>
<script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<script type="text/javascript">
wx.config({
debug : false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId : '{$signPackage.appId}', // 必填,公众号的唯一标识
timestamp : '{$signPackage.timestamp}', // 必填,生成签名的时间戳
nonceStr : '{$signPackage.nonceStr}', // 必填,生成签名的随机串
signature : '{$signPackage.signature}',// 必填,签名,见附录1
jsApiList : ['chooseImage','getLocalImgData']
});
/**
* 微信调取拍照
*/
function use_wx_camera(){
/**
* 调取相机
*/
wx.chooseImage({
count: 1, // 默认9
sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有'original', 'compressed'
sourceType: ['camera'], // 可以指定来源是相册还是相机,默认二者都有'album', 'camera'
success: function (res) {
//alert(JSON.stringify(res));
//var localId = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
/**
* 获取图片数据
*/
wx.getLocalImgData({
localId: res.localIds[0].toString(),
success: function (result) {
//alert(JSON.stringify(result));
const localData = result.localData;
let imageBase64 = '';
if (localData.indexOf('data:image') == 0) {
//苹果的直接赋值,默认生成'data:image/jpeg;base64,'的头部拼接
imageBase64 = localData;
} else {
//此处是安卓中的唯一得坑!在拼接前需要对localData进行换行符的全局替换
//此时一个正常的base64图片路径就完美生成赋值到img的src中了
imageBase64 = 'data:image/jpeg;base64,' + localData.replace(/\n/g, '');
}
alert(imageBase64);
}
});
}
});
}
</script>