使用 bindlongpress 绑定录音授权,出现了两次授权弹框?
发布于 6 年前 作者 wluo 4300 次浏览 来自 问答

处理小程序录音功能的时候 使用 长按事件 bindlongpress 先录音授权,成功在录音。我在开发者工具上没事,在真机上面出现两次授权框。

经过我测试 ,我发现 bindlongpress 事件绑定授权 ,只要我执行点击的操作 也能出现授权框(一次)。执行长按的操作 就两次授权框。想问下这个问题 怎么解决。

附事件代码



  handleLongPress:function (e) {

    console.log('changan',e);

    //this.startPoint = e.touches[0]

    this.setData({startPoint:e.touches[0]})

    if (e.target.id === 'record'{

      //this.title = '正在录音'

      //this.isRecording = true

      this.startRecording()

      //this.canSend = true

      

    }

  },

  startRecording:function () {

    wx.getSetting({

      success: (res) => {

        console.log('getsetting',res);

        let auth = res.authSetting['scope.record']

        if (auth === false{ // 已申请过授权,但是用户拒绝

          console.log('已申请过授权,但是用户拒绝');

          

        } else if (auth === true{ // 用户已经同意授权

          console.log('用户已经同意授权');

          this.setData({

            title:'正在录音',

            isRecording:true,

            canSend:true,

          })

          //this.isRecording = true

          this.setData({isRecording:true})

          recorderManager.start(recordOptions)

        } else { // 第一次进来,未发起授权

          console.log('第一次进来,未发起授权');

          wx.authorize({

            scope: 'scope.record',

            success: () => {

              wx.showToast({

                title: '授权成功',

                icon: 'success',

                duration: 1500

              })

            }

          })

        }

      },

      fail: function () {

        wx.showToast({

          title: '授权失败',

          icon: 'none',

          duration: 1500

        })

      }

    })

  },

2 回复

你好,麻烦具体描述问题流程,提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

官方不给回复的吗

回到顶部