小程序 — 保存图片到手机相册

作者: ComfyUI | 来源:发表于2018-09-06 13:34 被阅读25次

    讲一下在微信小程序中,怎么把网络图片保存到本机相册中;这个功能其实在小程序开发中还是很常见的,比如保存海报之类的等等。
    GitHub:https://github.com/Ewall1106/miniProgramDemo

    1、保存图片

    (1)要保存图片到手机相册中,所以首先我们来看看保存图片的api方法是什么?
    我们使用的是wx.saveImageToPhotosAlbum(OBJECT)这个api方法,其中OBJECT的参数可以是:

    图片来源自小程序官网

    请注意我红框标记的部分, 不支持网络图片路径

    (2)于是我们照猫画虎简单的写一下

    简单使用wx.saveImageToPhotosAlbum(OBJECT)

    2、下载图片到本地

    前面已经重点提到,由于wx.saveImageToPhotosAlbum(OBJECT)这个方法不支持网络图片,但是一般我们在项目中要下载的图片都是后端提供的,所以我们要把图片下载到本地。

    (1)wx.downloadFile(OBJECT) 基本语法

    • OBJECT参数说明:

      图片来源自小程序官网
    • success返回函数:

      图片来源自小程序官网

    (2)代码示例基本用法
    使用方法很简单,copy一下官网的示例代码就就ok了:

    wx.downloadFile(OBJECT)基本案例代码

    3、实现保存图片到手机相册功能

    于是,把下载图片后成功返回的tempFilePath临时路径赋给wx.saveImageToPhotosAlbum(OBJECT)filePath,就可以实现保存网络图片到本地了。

    实现保存图片到手机相册功能代码 保存成功

    4、案例代码

    添加操作提示弹窗,全部的案例代码:

    saveImage() {
      wepy.showLoading({
        title: '保存中...', 
        mask: true,
      });
      wx.downloadFile({
        url:
    'http://upload.jianshu.io/admin_banners/web_images/4435/c1d3ca63353c8bd527f0d781605516cb5b266d02.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/1250/h/540',
        success: function(res) {
          if (res.statusCode === 200) {
            let img = res.tempFilePath;
            wx.saveImageToPhotosAlbum({
              filePath: img,
              success(res) {
                wepy.showToast({
                  title: '保存成功',
                  icon: 'success',
                  duration: 2000
                });
              },
              fail(res) {
                wepy.showToast({
                  title: '保存失败',
                  icon: 'success',
                  duration: 2000
                });
              }
            });
          }
        }
      });
    }
    

    5、问题及优化

    其实到上面部分就可以基本实现保存图片到手机相册的功能了,但是还有这么几个问题:

    • 如果用户第一次点击的时候,对弹出来的微信授权弹窗点击了拒绝,那么之后点击保存图片就没用了。

      如果用户第一次点击了拒绝授权
    • 手机打开调试模式可以保存图片,但是关闭调试模式就不能保存图片了。

    下一章节解决这几个问题。

    参考学习
    https://developers.weixin.qq.com/miniprogram/dev/api/network-file.html#wxdownloadfileobject
    https://developers.weixin.qq.com/miniprogram/dev/api/media-picture.html#wxsaveimagetophotosalbumobject

    相关文章

      网友评论

      本文标题:小程序 — 保存图片到手机相册

      本文链接:https://www.haomeiwen.com/subject/zftxgftx.html