- 已解决~ wx.saveImageToPhotosAlbum 方法在部分安卓手机上出现图片保存失败的bug。
如题,运营曾给出一个问题,小程序分享到朋友圈的功能部分用户出现保存图片失败的情况。 查了下原因出问题的都是android用户。 打日志后发现: [图片] 原因是:部分安卓手机调用 wx.downloadFile方法下载网络资源图片后 会出现下载的图片临时路径的扩展名是unknown。所以后续在调用wx.saveImageToPhotosAlbum 方法时候会报错:saveimagetophotosalbum:fail invalid file type [图片] -----------------------------分------------------------割------------------------线--------------------------------------------- 下面是解决方案:(自定义临时资源路径)关键部分已经红色大字体加粗了 savePic(imgpic) { // 保存function wx.showLoading({ title: '下载中...' mask: true }) let fileName = newDate().valueOf(); wx.downloadFile({ url: imgpic, /* filePath指定文件下载后存储的路径,wx.env.USER_DATA_PATH */ filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.jpg' success: res => { console.log('downloadFileres', res) let filePath = res.filePath; wx.saveImageToPhotosAlbum({ filePath, success: file => { console.log('file', file) wx.hideLoading(); wx.showModal({ content: '保存成功,您可以将保存的图片分享到朋友圈奥~' showCancel: false }) /* 删除缓存 */ let fileMgr = wx.getFileSystemManager(); fileMgr.unlink({ filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.jpg' success: function (r) { }, }) }, fail: err => { wx.hideLoading(); }, }) }, complete: () => { wx.hideLoading(); } }) } tips:剩余点击保存按钮方法也一起贴一下: gosave() { // 点击保存到本地 var that = this var imgpic = this.data.imgpic wx.getSetting({ success(res) { console.log('res', res) if (!res.authSetting['scope.writePhotosAlbum']) { wx.authorize({ scope: 'scope.writePhotosAlbum' success() { console.log('授权成功' }, fail() { wx.showModal({ content: '您未授权奥,现在去授权?' success(res) { if (res.confirm) { wx.openSetting({ }) } } }) } }) } else { that.savePic(imgpic) } } }) },
2020-01-03 - 只有三行代码的神奇云函数的功能之四:获取电话号码
这是一个神奇的网站,哦不,神奇的云函数,它只有三行代码:(真的只有三行哦) 云函数:login index.js: const cloud = require('wx-server-sdk') cloud.init() exports.main = async (event) => { return { ...event, ...cloud.getWXContext() } } 神奇功能之四:获取电话号码: 还是这三行代码,获取用户的电话号码。 wxml: <button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber" >{{mobile||"获得电话号码"}}</button> js: getPhoneNumber: function (e) { wx.cloud.callFunction({ name: 'login', data: {weRunData: wx.cloud.CloudID(e.detail.cloudID)} }).then(res => { this.setData({ mobile: res.result.weRunData.data.phoneNumber }) }) } 其他功能: 神奇功能之一:获取openid: https://developers.weixin.qq.com/community/develop/article/doc/00080c6e3746d8a940f9b43e55fc13 神奇功能之二:不用授权获取unionid: https://developers.weixin.qq.com/community/develop/article/doc/000a0c6b580338e947f9db0c65b813 神奇功能之三:100%成功获取unionid: https://developers.weixin.qq.com/community/develop/article/doc/00066a967c4e384949f93fe1151413 神奇功能之五:获取群id: 将小程序分享到某群里,可获得该群的群id, https://developers.weixin.qq.com/community/develop/article/doc/000ea802c00f70894cf9fe72556013 [图片]
2020-12-16