1,拍照或从手机相册中选图接口
调用接口之前需通过config接口注入权限验证配置
注入详情查看上一篇 https://www.tnblog.net/15736469932/article/details/3428
拍照或从手机相册中选图接口
wx.chooseImage({ count: 1, // 默认9 上传图片数量 sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 success: function (res) { var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片 }})
注:此接口安卓和IOS无法通过ID预览图片(官方解释安卓有时候会这样)下面会详细介绍方法
上传图片接口
wx.uploadImage({ localId: '', // 需要上传的图片的本地ID,由chooseImage接口获得 isShowProgressTips: 1, // 默认为1,显示进度提示 success: function (res) { var serverId = res.serverId; // 返回图片的服务器端ID }});
备注:上传图片有效期3天,可用微信多媒体接口下载图片到自己的服务器,此处获得的 serverId 即 media_id。
下载图片接口
wx.downloadImage({ serverId: '', // 需要下载的图片的服务器端ID,由uploadImage接口获得 isShowProgressTips: 1, // 默认为1,显示进度提示 success: function (res) { var localId = res.localId; // 返回图片下载后的本地ID }});
获取本地图片接口
wx.getLocalImgData({ localId: '', // 图片的localID success: function (res) { var localData = res.localData; // localData是图片的base64数据,可以用img标签显示 }});
备注:此接口仅在 iOS WKWebview 下提供,用于兼容 iOS WKWebview 不支持 localId 直接显示图片的问题。具体可参考《iOS WKWebview网页开发适配指南》
getLocalImgData 该方法官方说 接口仅在 iOS WKWebview 下提供用于兼容 iOS WKWebview 不支持 localId 直接显示图片的问题
,但是我们可以做成安卓和IOS通用方法
在方法里面 getLocalImgData 判断
if (localData.indexOf("data:image") != 0) {
//判断是否有这样的头部
localData = "data:image/jpeg;base64," + localData;
}
localData = localData.replace(/\r|\n/g, "");
//.replace('data:image/jgp', 'data:image/jpeg'); 必要时可转
然后,localData 可以作为img标签的src属性显示图片