微信小程序摄像头授权,及避免多次点击触发

一、摄像头授权

1.在用户要使用到摄像头时调用摄像头接口

2.用户同意即可使用

3.用户不同意弹出小程序设置页面,可以让用户自行开启需要的权限

4.用户点击前往设置自行开启

5.用户拒绝授权无法使用摄像头,用户扫描失败弹出扫描失败窗口

二、防止多次点击

1.data中添加属性控制按钮绑定方法的状态

2.当识别二维码失败时取消方法的绑定,让按钮失效

例子:

wxml文件

<view bind:tap="{{btnClicked ? '' : 'codeBtn'}}">一键扫码</view>

js文件

Page({
  data: {
    btnClicked: false,
  },
  codeBtn() {
    this.setData({
      btnClicked: true
    })
    wx.authorize({
      scope: 'scope.camera',
      success: () => {
        // 用户同意授权,调用摄像头接口
        wx.scanCode({
          success: (res) => {
            if (res != "" && res != null && res != 'undefined') {
              if (res.errMsg == "scanCode:ok" && res.path != "") {
                const searchChar = "=";
                const result = res.path.split(searchChar)[1];
                this.goToIndex(result);
                this.boolScanView = false
              } else {
                wx.showToast({
                  title: '未识别到二维码',
                  icon: 'error',
                  duration: 2000
                })
                this.setData({
                  btnClicked: false
                })
              }
            } else {
              wx.showToast({
                title: '未识别到二维码',
                icon: 'error',
                duration: 2000
              })
              this.setData({
                btnClicked: false
              })
            }
          },
          fail: (res) => {
            wx.showToast({
              title: '未识别到二维码',
              icon: 'error',
              duration: 2000
            })
            this.setData({
              btnClicked: false
            })
          }
        });
      },
      fail: (res) => {
        this.setData({
          btnClicked: false
        })
        // 用户拒绝授权,提示用户开启摄像头权限
        wx.showModal({
          title: '提示',
          content: '需要获取用户位置信息权限',
          cancelText: '暂不设置',
          confirmText: '前往设置',
          confirmColor: '#3CC51F',
          success(res) {
            if (res.confirm) {
              wx.openSetting(); // 打开小程序设置页面,可以让用户开启需要的权限
            }
          }
        })
      }
    });

  },
})

  • 16
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值