美文网首页
微信小程序将图片/视频保存在本地

微信小程序将图片/视频保存在本地

作者: 青城墨阕 | 来源:发表于2021-05-14 17:59 被阅读0次
    重点API:

    wx.saveImageToPhotosAlbum

    参考文档:

    https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.saveImageToPhotosAlbum.html

    文档划重点:
    1. wx.saveImageToPhotosAlbum


      image.png
    image.png

    故:不能直接将网络图片塞在api中进行保存!
    另:相对路径的图片更加不可以!!!

    1. wx.downloadFile


      image.png

      downFile需要配置域名:


      image.png
    2. wx.openSetting


      image.png
      image.png
    网络图片保存在本地

    (本文只提供网络图片保存在本地的方式)

    /**
     * 将图片保存本地
    */
    export default Behavior({
        data: {
        },
        methods: {
            wxGetCurrSetting(img) {
                let that = this;
                wx.getSetting({
                    success(res) {
                        if (!res.authSetting['scope.writePhotosAlbum']) { // 没有将图片保存在本地的权限
                            wx.authorize({ // 申请权限
                                scope: "scope.writePhotosAlbum",
                            }).then((res) => {
                                that.downFile(img);
                            },(err) => {
                                // 若之前拒绝过申请,则不会show起授权弹框。则需要通过wx.openSetting打开授权页面,但是该api只能通过tap触发,不支持直接调用
                                that.failSetting();
                            })
                        }
                        else {
                            that.downFile(img);
                        }
                    }
                });
            },
            downFile(img) {
                let that = this;
                // 下载文件资源到本地。客户端直接发起一个 HTTPS GET 请求,返回文件的本地临时路径 (本地路径),单次下载允许的最大文件为 200MB。
                // 另外wx.downloadFile需要在后台配置域名
                wx.downloadFile({
                    url: img,
                    success: function (res) {
                        if (res.statusCode === 200) {
                            // 将本地临时路径的图片保存在本地
                            wx.saveImageToPhotosAlbum({
                                filePath: res.tempFilePath,
                                success(res) {
                                    that.successSave();
                                },
                                fail(res) {
                                    that.failSave();
                                }
                            })
                        }
                    },
                    fail(res) {
                        that.failSave();
                    }
                });
            },
            wxOpenSetting() {
                // 打开设置页面需要button的tap触发,dialog的点击事件在真机上存在问题
                wx.openSetting({
                    success (res) {
                    },
                    fail(err) {
                        console.log('wx.openSetting err === ', err);
                    }
                });
            }
        }
    });
    

    相关文章

      网友评论

          本文标题:微信小程序将图片/视频保存在本地

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