之前的文章介绍了关于微信JSSDK调用,下面介绍一下其中的一个最常用的功能——调用相册和摄像头
使用此功能之前先参考:微信JSSDK
在通过了config接口验签成功之后,我们就可以调用微信JSSDK的方法了
1、config配置成功
// 通过config接口注入权限验证配置,可查阅微信公众平台接口进行配置
wx.config({
debug: false,
appId: appId,
timestamp: timestamp,
nonceStr: nonceStr,
signature: signature,
jsApiList:[
'chooseImage',
'uploadImage',
'getLocalImgData',
'downloadImage'
],// 必填,需要使用的JS接口列表 声明
});
wx.ready(function () {
wx.checkJsApi({
jsApiList: [
'chooseImage',
'previewImage',
'uploadImage',
'downloadImage'
],
success: function (res) {
if (res.checkResult.getLocation == true) {
wxChooseImage();
}
}
});
});
wx.error(function(res){
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
alert("验证失败,请重试!");
});
2、调用相册和摄像头
wx.chooseImage({
count: 1, // 最多可以选择的图片张数,默认9
sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有
sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有
success: function (res) {
let localIds = res.localIds; // 返回选定照片的本地ID列表(手机上操作就是手机端的ID列表,是一个数组),localId可以作为img标签的src属性显示图片
wx.uploadImage({
localId: localIds[0], // 需要上传的图片的本地ID,由chooseImage接口获得
isShowProgressTips: 1, // 默认为1,显示进度提示
success: function (result) {
let serverId = result.serverId; // 返回图片的服务器端ID
// 可以将serverId传给后台,用于存放在自己服务器上
}
});
},
fail: function() {},
complete: function() {}
});
3.上传到微信服务器
function wxChooseImage() {
wx.chooseImage({
success: function(res) {
var localId = res.localIds;
function upload() {
//图片上传
wx.uploadImage({
localId: localId[i],
success: function(res) {
var serverId = res.serverIdl;
//图片上传完成之后,进行图片的下载,图片上传完成之后会返回一个在腾讯服务器的存放的图片的ID--->serverId
wx.downloadImage({
serverId: res.serverId, // 需要下载的图片的服务器端ID,由uploadImage接口获得
isShowProgressTips: 1, // 默认为1,显示进度提示
success: function (res) {
var localId = res.localId; // 返回图片下载后的本地ID
//通过下载的本地的ID获取的图片的base64数据,通过对数据的转换进行图片的保存
wx.getLocalImgData({
localId: localId, // 图片的localID
success: function (res) {
var localData = res.localData; // localData是图片的base64数据,可以用img标签显示
//通过ajax来将base64数据转换成图片保存在本地
$.ajax({
});
}
});
}
});
},
fail: function(res) {
}
});
}
}
});
}
完成以上步骤就可以在微信H5中调用相册和摄像头并上传服务器了