Rumah >applet WeChat >Pembangunan program mini >Ringkaskan dan susun antara muka kebenaran applet WeChat

Ringkaskan dan susun antara muka kebenaran applet WeChat

WBOY
WBOYke hadapan
2022-05-16 11:43:095905semak imbas

Artikel ini membawakan anda isu berkaitan tentang Program Mini WeChat Ia terutamanya memperkenalkan kandungan antara muka kebenaran yang berkaitan dalam Program Mini WeChat, termasuk antara muka kebenaran pengguna dan mendapatkan tetapan kebenaran pengguna. membuka antara muka tetapan kebenaran pengguna, dsb. Mari kita lihat bersama-sama. Saya harap ia akan membantu semua orang.

Ringkaskan dan susun antara muka kebenaran applet WeChat

[Cadangan pembelajaran berkaitan: Tutorial pembelajaran program mini]

1 Antara muka kebenaran

Beberapa antara muka adalah diperlukan Ia boleh dipanggil hanya selepas kebenaran pengguna. Kami membahagikan antara muka ini kepada berbilang skop mengikut skop penggunaannya. Pengguna memilih untuk membenarkan skop, semua antara muka yang sepadan boleh digunakan secara langsung apabila antara muka tersebut dipanggil:

  • Jika pengguna tidak menerima atau menolak kebenaran ini, tetingkap pop timbul akan muncul untuk bertanya kepada pengguna, dan pengguna hanya boleh menghubungi antara muka selepas mengklik Unify.
  • Jika pengguna diberi kuasa, antara muka boleh dipanggil terus.
  • Jika pengguna telah menolak kebenaran, tiada tetingkap pop timbul akan muncul, tetapi antara muka gagal panggil balik akan dimasukkan terus.

  Hubungan yang sepadan antara medan skop objek dalam kebenaran antara muka jenis ini dan antara muka adalah seperti yang ditunjukkan dalam jadual berikut.

scope 对应接口 描述
scope.userLocation wx.getLocation, wx.chooseLocation, wx.startLocationUpdate 地理位置
scope.userLocationBackground wx.startLocationUpdateBackground 后台定位
scope.record wx.startRecord, wx.joinVoIPChat, RecorderManager.start 麦克风
scope.camera camera组件, wx.createVKSession 摄像头
scope.bluetooth wx.openBluetoothAdapter, wx.createBLEPeripheralServer 蓝牙
scope.writePhotosAlbum wx.saveImageToPhotosAlbum, wx.saveVideoToPhotosAlbum 添加到相册
scope.addPhoneContact wx.wx.addPhoneContact 添加到联系人
scope.addPhoneCalendar wx.addPhoneRepeatCalendar, wx.addPhoneCalendar 添加到日历
scope.werun wx.getWeRunData 微信运动步数
scope.address wx.chooseAddress 通讯地址(已取消授权,可以直接调用对应接口)
scope.invoiceTitle wx.chooseInvoiceTitle 发票抬头(已取消授权,可以直接调用对应接口)
scope.invoice wx.chooseInvoice 获取发票(已取消授权,可以直接调用对应接口)
scope.userInfo wx.getUserInfo 用户信息(小程序已回收,请使用头像昵称填写,小游戏可继续调用)

 Program mini menyediakan tiga set antara muka untuk melaksanakan operasi yang sepadan pada kebenaran antara muka: wx.getSetting()Dapatkan status kebenaran semasa pengguna wx.openSetting()Buka antara muka tetapan untuk membimbing pengguna untuk mendayakan kebenaran; status. wx.authorize()

1.1 Antara muka kebenaran pengguna

wx.authorize(Object object)

  Mulakan permintaan kebenaran kepada pengguna terlebih dahulu. Selepas memanggil antara muka ini, tetingkap akan muncul serta-merta bertanya kepada pengguna sama ada mereka bersetuju untuk membenarkan applet untuk menggunakan fungsi tertentu atau mendapatkan beberapa data pengguna, tetapi antara muka yang sepadan sebenarnya tidak akan dipanggil. Jika pengguna sebelum ini bersetuju dengan kebenaran, tiada tetingkap timbul akan muncul dan kejayaan akan dikembalikan secara langsung. Ciri-ciri ditunjukkan dalam jadual di bawah.

属性 类型 默认值 必填 说明
scope string
需要获取权限的 scope,详见 scope 列表
success function
接口调用成功的回调函数
fail function
接口调用失败的回调函数
complete function
接口调用结束的回调函数(调用成功、失败都会执行)
  Contoh kod daripada tapak web rasmi:

// 可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.record" 这个 scopewx.getSetting({
  success(res) {
    if (!res.authSetting['scope.record']) {
      wx.authorize({
        scope: 'scope.record',
        success () {
          // 用户已经同意小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问
          wx.startRecord()
        }
      })
    }
  }})
1.2 Dapatkan antara muka tetapan kebenaran pengguna

wx.getSetting(Object object)

  Antara muka ini mendapat tetapan semasa pengguna. Hanya kebenaran yang telah diminta oleh applet daripada pengguna akan muncul dalam nilai pulangan. Atribut adalah seperti berikut:

属性 类型 默认值 必填 说明 最低版本
withSubscriptions Boolean false 是否同时获取用户订阅消息的订阅状态,默认不获取。注意:withSubscriptions 只返回用户勾选过订阅面板中的“总是保持以上选择,不再询问”的订阅消息。 2.10.1
success function
接口调用成功的回调函数
fail function
接口调用失败的回调函数
complete function
接口调用结束的回调函数(调用成功、失败都会执行)
objek.success fungsi panggil balik adalah seperti berikut:

  官网示例代码:

wx.getSetting({
  success (res) {
    console.log(res.authSetting)
    // res.authSetting = {
    //   "scope.userInfo": true,
    //   "scope.userLocation": true
    // }
  }})

1.3 打开用户权限设置接口wx.openSetting(Object object)

  该接口调用客户端小程序设置界面,返回用户设置的操作结果。设置界面只会出现小程序已经向用户请求过的权限。

属性 类型 默认值 必填 说明 最低版本
withSubscriptions Boolean false 是否同时获取用户订阅消息的订阅状态,默认不获取。注意:withSubscriptions 只返回用户勾选过订阅面板中的“总是保持以上选择,不再询问”的订阅消息。 2.10.3
success function
接口调用成功的回调函数
fail function
接口调用失败的回调函数
complete function
接口调用结束的回调函数(调用成功、失败都会执行)

object.success回调函数如下:

属性 类型 说明 最低版本
authSetting AuthSetting 用户授权结果
subscriptionsSetting SubscriptionsSetting 用户订阅消息设置,接口参数withSubscriptions值为true时才会返回。 2.10.3
  • 注意:2.3.0 版本开始,用户发生点击行为后,才可以跳转打开设置页,管理授权信息。

  官网示例代码:

wx.openSetting({
  success (res) {
    console.log(res.authSetting)
    // res.authSetting = {
    //   "scope.userInfo": true,
    //   "scope.userLocation": true
    // }
  }})

2、授权案例

  本例使用获取地理位置接口wx.getLocation()和开始录音接口wx.startRecord()进行相关操作,而这两个接口都需要设置操作权限。

Setting.wxml代码如下:

<!--index.wxml--><view>获取地理位置</view><view>{{context}}</view><view>开始录音</view>

Setting.js代码如下:

//index.js//获取应用实例const app = getApp()Page({
  data: {
   
  },
  
  onLoad: function () {
    context:''
  },
  location1:function(){	//获取地理位置
    var that=this
    wx.getSetting({	//获取用户权限设置接口
      success(res) {
        console.log(res)
        if (!res.authSetting['scope.userLocation']) {
          wx.authorize({		//授权
            scope: 'scope.userLocation',	//地理位置权限,看线上面的scope对应的参数
            success() {
              wx.getLocation({		//获取当前的地理位置
                success: function(res) {
                 console.log(res)
                  that.setData({ context: "你所在的经度是" + res.latitude+"你所在的纬度是"+res.longitude})
                },
              })
            }
          })
        }
      }
    })
  },
 
  location2: function () {			//录音
    var that = this
  
        wx.getSetting({
          success(res) {
            console.log(res.authSetting)
            if (!res.authSetting['scope.record']) {
              wx.openSetting({		//打开用户权限设置界面
                success(res) {
                  console.log(res)
                  wx.startRecord({		//开始录音
                    success(res) {
                      const tempFilePath = res.tempFilePath
                      console.log("录音结束")
                    }
              })
            } 
        })
        }}
        })
  }})

   location()1函数实现获取地理位置的功能,该函数先调用wx.getSetting()接口获取权限状态,然后调用wx.authorize()接口修改地理位置权限scope.userLocation。location2()函数实现录音功能,该函数先调用wx.getSetting()接口获取权限状态,然后调用wx.openSetting()接口打开录音权限设置界面来修改录音权限。从本例可以看出设置权限的时候应该先调用wx.getSetting()接口来修改权限状态,在没有权限打开的情况下可以调用wx.authorize()接口或者wx.openSetting()接口来修改权限状态,wx.authorize()接口不出现修改权限的操作权限,而wx.openSetting()接口会出现修改权限的操作界面。

  案例效果如下:

Ringkaskan dan susun antara muka kebenaran applet WeChat

  点击获取地理位置:

Ringkaskan dan susun antara muka kebenaran applet WeChat

  点击允许之后会显示当前所在的经纬度。

Ringkaskan dan susun antara muka kebenaran applet WeChat

  点击开始录音按钮出现麦克风授权:

Ringkaskan dan susun antara muka kebenaran applet WeChat

【相关学习推荐:小程序学习教程

Atas ialah kandungan terperinci Ringkaskan dan susun antara muka kebenaran applet WeChat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam