解决首次进入小程序拒绝相机权限,后续不提示打开权限,相关功能不能使用

photo.wxml

<camera binderror="binderror" bindinitdone="bindinitdone">
</camera>

photo.js文件

  /**
   * 用户不允许使用摄像头时触发
   * 首次进入点击拒绝触发
   * @param {*} e
   */
  binderror(e) {
    console.log("不允许触发 :>> ", e);
    this.handleCameraError();
  },
  /**
   * 相机初始化完成时触发 
   * 弹出微信授权提示时只有授权成功时才会触发 
   * 弹过微信授权并点击同意或拒绝后都会触发
   * @param {*} e
   */
  bindinitdone(e) {
    console.log("初始化完成触发 :>> ", e);
    this.cameraStatus();
  },
  cameraStatus() {
    wx.getSetting({
      success: (res) => {
        //相机权限被拒绝
        if (!res.authSetting["scope.camera"]) {
          this.handleCameraError();
        }
      },
    });
  },
  // 拒绝授权后进入的方法
  handleCameraError: function () {
    wx.showModal({
      title: "提示",
      content: "请开启摄像头权限,否则无法拍照",
      confirmText: "去开启",
      success(res) {
        if (res.confirm) {
          wx.openSetting({
            success(res) {
              if (res.authSetting["scope.camera"]) {
                // 重点是这里,再次允许授权后需要刷新一下页面,camera组件才会出来
                wx.redirectTo({
                  url: "./photo-recognition",
                });
              }
            },
          });
        } else if (res.cancel) {
          console.log("用户点击取消");
          wx.navigateBack({
            delta: 1,
          });
        }
      },
    });
  },
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值