这是自己做小程序生成推广海报,并保存到本地相册的方法,向后台发起请求,返回一个海报图片,下载保存到相册,
如果只是单纯的下载图片代码43行-63行就足够了,具体看代码:
//选中轮播图中的一个作为海报背景图。可自行实验,只是自己的总结 bindchange: function(a) { for (var t = this, o = a.detail.current, i = t.data.imgUrls, n = 0; n < i.length; n++) { var e = i[o].plogo; var title = i[o].title; t.setData({ imgcxs: e, title: title }); } t.setData({ tuhight: o,
//选中图片的id nowid:a.detail.currentItemId, }); }, //选中海报背景,拿到id后向后台发起请求,生成海报 bao: function() { var that = this; wx.showLoading({ title: "生成中", mask: true, }); //向后台发起请求, wx.request({ url: api.url.poster, method: "POST", data:{ uid: app.globalData.userInfo.id, postid:that.data.nowid, }, header: { ‘content-type‘: ‘application/x-www-form-urlencoded‘ }, success: function (res) { console.log(res) wx.hideLoading(); wx.showToast({ title: res.data.msg, icon: "none" }) //下载图片 //这里不能用wx.savefile()去保存,它不会自动保存在自己相册中的,只能用wx.saveImageToPhotosAlbum()调起相册 wx.downloadFile({ url: 后台返回图片的url(或者是网上的图片url), success: function(a) { //图片下载时的临时路径 var t = a.tempFilePath; //通过wx.saveImageToPhotoAlbum调起本地相册,并保存 wx.saveImageToPhotosAlbum({ //需要保存的临时文件路径 filePath: a.tempFilePath , success: function (a) { console.log(a); wx.showToast({ title: "保存成功", icon: "success", duration: 2e3, }) }, fail: function (err) { console.log(err) } }); }, fail:err=>{ console.log(err) } }) }