微信公众号接入JSSDK实现拍照上传

啥?你说我为啥要用JSSDK?真香
首先看看微信官方文档,接入JSSDK步骤:
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#1
步骤一:绑定域名(略过)
步骤二:引入JS文件(注意:坑来了)
http://res.wx.qq.com/open/js/jweixin-1.6.0.js(安卓可,ios没效果)
http://res2.wx.qq.com/open/js/jweixin-1.6.0.js(安卓可,ios没效果)
啥情况??求求百度大神
微信公众号接入JSSDK实现拍照上传_第1张图片
注意!!用下面这个js文件(安卓可,ios可)
微信公众号接入JSSDK实现拍照上传_第2张图片
接下来,愉快的写代码了:
步骤二:引入JS文件
步骤三:通过config接口注入权限验证配置
步骤四:通过ready接口处理成功验证

	
	
function chooseImgs() {
	wx.chooseImage({
		count: 1, // 默认1
		sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
		sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
		success: function (res) {
			localIds = res.localIds;
			uploadimg(localIds[0])
		}
	});
}

注意!!坑又来了
这个上传只是上传一个serverId,然后,后端根据serverId去微信服务器拿到这个图片,下载到自己的服务器,再返回给图片路径给前端,这样才走完了流程。

function uploadimg(e) {
	//具体上传图片
	wx.uploadImage({
		localId: e, // 需要上传的图片的本地ID,由chooseImage接口获得
		isShowProgressTips: 1, // 默认为1,显示进度提示
		success: function (res) {
			var serverId = res.serverId;
			$.ajax({
				type: "post",
				url: baseUrl + "/drvier/upload",
				data: {
					file:serverId
				},
				dataType: "json",
				success: function (res) {
					if(res.code == 0){
						mui.toast(res.msg)
						imgs.push(res.url)
						//实现图片预览
						var str = `<div class="img-cont"><img src="${res.url}"/><div class="delete-img" onclick="deleteImg('${res.url}',this)"><img src="img/delete_img.png"/></div></div>`
						$('#uploadPics').append(str)
						if(imgs.length>=3){
							$('#uploadBox').hide();
						}
					}else{
						mui.toast(res.msg)
					}
				},
				error:function(){
					mui.toast('上传错误,请稍候重试');
				}
			});
		},
		fail: function (error) {
			mui.toast('上传错误,请稍候重试');
		}
	});
}

你可能感兴趣的:(小程序)