1 var images = { 2 localId : [], 3 serverId : [] 4 };//传给后台的参数 5 //修改头像 6 $.ajax({ 7 url: "", 8 dataType: "json", 9 data: { 10 url: location.href.split('#')[0] 11 }, 12 type: "post", 13 success: function(data) { 14 var dataObj = eval("(" + data + ")"); 15 wx.config({ 16 debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 17 appId: dataObj.results.data.appId, // 必填,公众号的唯一标识 18 timestamp: dataObj.results.data.timestamp, // 必填,生成签名的时间戳 19 nonceStr: dataObj.results.data.nonceStr, // 必填,生成签名的随机串 20 signature: dataObj.results.data.signature, // 必填,签名,见附录1 21 jsApiList: ['downloadImage', 'chooseImage', 'uploadImage'] 22 // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 23 }); 24 //微信JS-SDK说明文档地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115 25 wx.ready(function() { 26 // 如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。 27 $(".setheadImg").click(function() { 28 wx.chooseImage({ 29 debug: false, 30 count: 1, // 限制图片最多选1张 31 sizeType: ['compressed'], // 指定是压缩图 32 success: function(res) { 33 var localIds = res.localIds; 34 if(localIds.length == 1) { 35 $(".setheadImg").attr("src", localIds[0]); 36 // 微信的坑点iOS微信6.5.3及其之后的版本window.__wxjs_is_wkwebview为true时是使用WKWebview,为false或者“undefine”时是UIWebviewWKWebview 37 // 不支持res.localIds显示图片,必须用res.localData 38 if(window.__wxjs_is_wkwebview) { 39 wx.getLocalImgData({ 40 localId: localIds[0], 41 success: function(res) { 42 if(res.localData != "") { 43 $(".setheadImg").attr("src", res.localData);//头像图片的容器 44 } 45 } 46 }); 47 } 48 syncUpload(localIds); 49 50 } 51 }, 52 error: function(res) { 53 alert(res) 54 } 55 }); 56 }); 57 // sync upload pic 58 var syncUpload = function(localIds) { 59 var localId = localIds.pop(); 60 wx.uploadImage({ 61 localId: localId, 62 isShowProgressTips: 1, 63 success: function(res) { 64 var serverId = res.serverId; // 返回图片的服务器端ID 65 images.serverId.push(serverId); 66 if(localIds.length > 0) { 67 syncUpload(localIds); 68 } 69 } 70 }); 71 } 72 }, function(data) { 73 alert('系统繁忙,请刷新页面!') 74 }); 75 }, 76 error: function(data) { 77 alert('系统繁忙,请刷新页面!') 78 } 79 })