一、小程序
1.1[小程序]小程序官方提供的接口仅支持单文件上传,对多文件上传实现需要自行处理异步。
var result=[];
//多张图片上传
uploadimg(data){
let that=this,
i=data.i?data.i:0,//当前上传的哪张图片
success=data.success?data.success:0,//上传成功的个数
fail=data.fail?data.fail:0;//上传失败的个数
if(i===0){
that.result=[];
}
wx.uploadFile({
url: jxConfig.serviceUrl+data.url,
filePath: data.path[i].src,
name: 'files',//这里根据自己的实际情况改
formData:data.formData,//这里是上传图片时一起上传的数据
header: {
"Content-Type": "multipart/form-data",
'platform':'wx-weap',
'token': jxConfig.userInfo().token
},
success: (resp) => {
success++;//图片上传成功,图片上传成功的变量+1
//这里可能有BUG,失败也会执行这里,所以这里应该是后台返回过来的状态码为成功时,这里的success才+1
},
fail: (res) => {
fail++;//图片上传失败,图片上传失败的变量+1
},
complete: (res) => {
that.result[i]=JSON.parse(res.data)
that.result[i]["source"]=data.path[i]
i++;//这个图片执行完上传后,开始上传下一张
if(i==data.path.length){ //当图片传完时,停止调用
data.callBack(that.result);
}else{//若图片还没有传完,则继续调用函数
data.i=i;
data.success=success;
data.fail=fail;
that.uploadimg(data);
}
}
});
},
二、微信网页
2.1微信网页调用SDK发起分享,link参数的URL在IOS上可以正常,在安卓上拿不到。主要是IOS上URL会被自动encodeURI,而安卓设备上不会自动帮你转换,需要要自己做转换。
wx.onMenuShareAppMessage({
title: document.title, // 分享标题
desc: "更多", // 分享描述
link:encodeURI(url), // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl:`${window.location.href.split('#')[0]}${imagepath}`,
success: function (msg) {
console.log("onMenuShareAppMessage success",msg)
// 用户确认分享后执行的回调函数
},
cancel: function (msg) {
console.log("onMenuShareAppMessage cancle",msg)
// 用户取消分享后执行的回调函数
}
});