原生小程序开发保存图片到本地-授权

原生小程序

目录

原生小程序


通过wx.getSetting判断scope.writePhotosAbum的值:

若为true则已经授权,直接调用保存到相册的方法

若为undefined,则说明是第一次授授权框只在第一次询问时弹出(下图),如果用户已经拒绝了,则不会弹出

若为false,则已经拒绝了授权,这时候我们需要调用wx.openSetting引导用户打开设置,保存到相册,wx.openSettina设置界面只会出现小程序已经用户请求过的权限

话不多说,上代码:

   // 保存图片方法
   saveImage(filePath) {
    wx.saveImageToPhotosAlbum({
      filePath: "/images/component/backColor.png", // 此为图片路径
      success: (res) => {
        this.showToast('保存成功')
      },
      fail: (err) => {
        console.log(err)
        this.showToast('保存失败,请稍后重试')
      }
    })
  },

  // 微信提示方法
  showToast(title) {
    wx.showToast({
      title: title
    });
  },
  // 点击保存图片到相册(授权)
  downloadClick() {
    const _this=this
    return new Promise((resolve, reject) => {
      wx.getSetting({
        success: (res) => {
          console.log(111,res)
          if (res.authSetting['scope.writePhotosAlbum'] == undefined) {
            console.log(999,wx.authorize())
            wx.authorize({
              scope: 'scope.writePhotosAlbum',
              success() {
                _this.saveImage()
              },
              fail() {
                wx.showToast({
                  title: '您没有授权,无法保存到相册',
                  icon: 'none'
                })
              }
            })
          } else if (res.authSetting['scope.writePhotosAlbum'] == false) {
            wx.showModal({
              title: "授权失败",
              content: "请开启授权",
              success(resModal) {
                if (resModal.confirm) {
                  wx.openSetting({
                    success: function (e) {
                      console.log("打开授权页面", e);
                      // false 表示打开设置面板,但是没有授权就返回了
                      if (e.authSetting['scope.writePhotosAlbum'] == false) {
                        console.log(222)
                        wx.showToast({
                          title: '您没有授权,无法保存到相册',
                          icon: 'none'
                        })
                      } else {
                        _this.saveImage()
                        resolve()
                      }
                    }
                  })
                } else if (res.cancel) {
                  console.log("打开授权页面弹框-拒绝授权")
                  reject();
                }
              }
            })
          } else {
            _this.saveImage()
            resolve()
          }
        },
        fail: (res) => {
          console.log("授权失败", res);
          reject();
        }
      })
    })
  }
})
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用原生小程序开发购物车模块时,以下是一些简要的说明: 1. 页面设计: - 创建一个购物车页面,用于展示用户已选择的商品列表。 - 在购物车页面中,显示每个商品的名称、价格、数量和规格等信息。 - 提供编辑按钮,允许用户修改商品数量或删除商品。 2. 数据管理: - 使用小程序提供的本地存储功能,将购物车商品列表保存在本地。 - 可以使用全局变量或自定义组件来管理购物车数据,在不同页面间共享数据。 3. 交互逻辑: - 用户点击“加入购物车”按钮时,将商品信息添加到购物车数据中,并更新页面展示。 - 用户可以通过增加或减少商品数量来调整购物车中的商品数量。 - 用户可以点击编辑按钮,进入编辑状态,在此状态下可以修改商品数量或删除商品。 - 当用户修改商品数量或删除商品时,需要更新购物车数据并刷新页面。 4. 结算功能: - 在购物车页面中提供结算按钮,用户点击后跳转到结算页面。 - 结算页面展示用户选中的商品信息,包括总价、运费等。 - 用户可以选择支付方式并提交订单。 5. 与后端交互: - 在结算页面提交订单时,将购物车中选中的商品信息发送给后端进行订单生成和支付处理。 - 在获取商品列表和价格等信息时,可以通过与后端的接口进行通信来获取最新的数据。 这些是使用原生小程序开发购物车模块的一般步骤和思路。具体的实现方式和细节会根据项目需求和设计进行调整。希望对您有所帮助,如有更多问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值