微信小程序扫码功能的限制(相册)

如果想要在使用微信小程序扫码时直接扫码(不通过相册扫码),可以在wx.scanCode中写入代码:

onlyFromCamera:true,

scanCode的onlyFromCamera默认值为false,改为true即可关闭授权

完整示例代码如下:

scanCode: function () {
    wx.scanCode({
      onlyFromCamera:true,
      success: function (resul) {
        console.log(resul);
        let that = this;
        let tenant = wx.getStorageSync('schoolId');
        if (!tenant) {
          wx.navigateTo({
            url: '../school/school',
          })
        }
        wx.showToast({
          title: '扫码成功...',
          icon: 'success',
          duration: 1500,
          mask: true
        });
        // wx.chooseMedia({
        //   count:1,
        //   sourceType: 'camera',
        // })
        // wx.chooseImage({
        //   count:1,
        //   sourceType: 'camera',
        //   // success (res) {
        //   //   // tempFilePath可以作为img标签的src属性显示图片
        //   //   const tempFilePaths = res.tempFilePaths
        //   // }
        // })
        wx.request({
          url: app.api + '/rider/orderModify',
          method: 'get',
          header: { 'content-type': 'application/json', 'tenant': tenant },
          data: {
            orderId: resul.result,
            deliverId: wx.getStorageSync('deliverId'),
            userType: wx.getStorageSync('userType')
          },
          success: function (res) {
            if (res.data.code == 200) {
              wx.showToast({
                title: '扫码成功',
                icon: 'success',
                duration: 1200,
                mask: true
              });
            } else {
              wx.showToast({
                title: '网络开小差了...',
                icon: 'loading',
                duration: 1200,
                mask: true
              });
            }
          }
        })
      }
    })
  },

官方接口文档地址https://developers.weixin.qq.com/miniprogram/dev/api/device/scan/wx.scanCode.html

### 如何在 UniApp 中实现微信小程序登录功能 #### 使用 `uni.scanCode` 方法完成描二维操作 为了实现在微信小程序中的登录功能,可以利用 `uni.scanCode` 这一API来启动设备自带的条形/二维描器。当用户成功描后会返回所识别的内容给前端应用处理。 ```javascript // 调用微信小程序内置方法进行 async function scanCode() { try { const res = await uni.scanCode({ onlyFromCamera: true, // 是否只允许从相机,默认false(可选相册选取图片) success: (res) => console.log('Scan result:', res.result), fail: (err) => console.error('Failed to scan code', err) }); handleLoginWithQR(res); // 处理后的逻辑 } catch (e) { console.error(e); } } ``` #### 结合服务器端验证流程 通常情况下,在客户端仅负责发起请求并接收响应数据;而实际的身份认证过程则由服务端执行。因此,在接收到结果之后,应当将其发送至后台接口做进一步校验: ```javascript function handleLoginWithQR(qrData){ uni.request({ url: 'https://example.com/api/loginByQrcode', method:'POST', data:{ qrContent : qrData.result, }, header:{'content-type':'application/json'}, success:(response)=>{ let {data}= response; if(data.success){ // 登录成功后的业务逻辑... }else{ // 错误提示或重试机制... } } }) } ``` 以上代片段展示了如何使用 `uni.scanCode()` 函数以及后续的服务端交互方式[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值