评论

已解决~ wx.saveImageToPhotosAlbum 方法在部分安卓手机上出现图片保存失败的bug。

解决wx.saveImageToPhotosAlbum 方法在部分安卓手机上出现图片保存失败的bug。 wx.downloadFile 保存图片unknown解决方案

如题,运营曾给出一个问题,小程序分享到朋友圈的功能部分用户出现保存图片失败的情况。


查了下原因出问题的都是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  
点赞 6
收藏
评论

3 个评论

  • 古剑魂梦
    古剑魂梦
    2020-05-22

    请问楼主 我这下载下来的图片是碎图 没有办法打开的是什么原因呢?类似于文件损坏那种

    2020-05-22
    赞同
    回复
  • 夕拾
    夕拾
    2020-04-19

    太感谢了,成功解决了我的问题,主要是安卓手机保存不了

    2020-04-19
    赞同
    回复
  • 济南千乐网络科技有限公司
    济南千乐网络科技有限公司
    2020-04-14

    感谢楼主,问题已经解决,微信升级7.0.13后出现的,之前都正常

    2020-04-14
    赞同
    回复 1
    • 浓茶
      浓茶
      2020-04-14
      不谢~
      2020-04-14
      回复
登录 后发表内容