亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序的權限接口有哪些及怎么用

發布時間:2022-05-16 13:37:09 來源:億速云 閱讀:415 作者:iii 欄目:移動開發

這篇文章主要講解了“微信小程序的權限接口有哪些及怎么用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“微信小程序的權限接口有哪些及怎么用”吧!

1、權限接口

??部分接口需要經過用戶授權統一才能調用。我們把這些接口按使用范圍分成多個scope,用戶選擇對scope進行授權,當授權給一個scope之后,其對應的所有接口都可以直接使用,此類接口調用時:

  • 如果用戶未接受或拒絕此權限,會彈窗詢問用戶,用戶單擊統一后方可調用接口。

  • 如果用戶已授權,可以直接調用接口。

  • 如果用戶已拒絕授權,則不會出現彈窗,而會直接進入接口fail回調。

??此類接口再權限中的對象scope的字段和接口的對應關系如下表所示。

scope對應接口描述
scope.userLocationwx.getLocation, wx.chooseLocation, wx.startLocationUpdate地理位置
scope.userLocationBackgroundwx.startLocationUpdateBackground后臺定位
scope.recordwx.startRecord, wx.joinVoIPChat, RecorderManager.start麥克風
scope.cameracamera組件, wx.createVKSession攝像頭
scope.bluetoothwx.openBluetoothAdapter, wx.createBLEPeripheralServer藍牙
scope.writePhotosAlbumwx.saveImageToPhotosAlbum, wx.saveVideoToPhotosAlbum添加到相冊
scope.addPhoneContactwx.wx.addPhoneContact添加到聯系人
scope.addPhoneCalendarwx.addPhoneRepeatCalendar, wx.addPhoneCalendar添加到日歷
scope.werunwx.getWeRunData微信運動步數
scope.addresswx.chooseAddress通訊地址(已取消授權,可以直接調用對應接口)
scope.invoiceTitlewx.chooseInvoiceTitle發票抬頭(已取消授權,可以直接調用對應接口)
scope.invoicewx.chooseInvoice獲取發票(已取消授權,可以直接調用對應接口)
scope.userInfowx.getUserInfo用戶信息(小程序已回收,請使用頭像昵稱填寫,小游戲可繼續調用)

??小程序提供了三組接口對接口權限進行相應的操作:wx.getSetting()獲取用戶當前的授權狀態;wx.openSetting()打開設置界面以引導用戶開啟授權;wx.authorize()改變授權狀態。

1.1 用戶授權接口wx.authorize(Object object)

??提前向用戶發起授權請求。該接口調用后會立刻彈窗詢問用戶是否同意授權小程序使用某項功能或獲取用戶的某些數據,但不會實際調用對應接口。如果用戶之前已經同意授權,則不會出現彈窗,直接返回成功。屬性如下表所示。

屬性類型默認值必填說明
scopestring
需要獲取權限的 scope,詳見 scope 列表
successfunction
接口調用成功的回調函數
failfunction
接口調用失敗的回調函數
completefunction
接口調用結束的回調函數(調用成功、失敗都會執行)

??官網的示例代碼:

// 可以通過 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 獲取用戶權限設置接口wx.getSetting(Object object)

??該接口獲取用戶的當前設置。返回值中只會出現小程序已經向用戶請求過的權限。屬性如下:

屬性類型默認值必填說明最低版本
withSubscriptionsBooleanfalse是否同時獲取用戶訂閱消息的訂閱狀態,默認不獲取。注意:withSubscriptions 只返回用戶勾選過訂閱面板中的“總是保持以上選擇,不再詢問”的訂閱消息。2.10.1
successfunction
接口調用成功的回調函數
failfunction
接口調用失敗的回調函數
completefunction
接口調用結束的回調函數(調用成功、失敗都會執行)

object.success回調函數如下:

屬性類型說明最低版本
authSettingAuthSetting用戶授權結果
subscriptionsSettingSubscriptionsSetting用戶訂閱消息設置,接口參數withSubscriptions值為true時才會返回。2.10.1
miniprogramAuthSettingAuthSetting在插件中調用時,當前宿主小程序的用戶授權結果

??官網示例代碼:

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

1.3 打開用戶權限設置接口wx.openSetting(Object object)

??該接口調用客戶端小程序設置界面,返回用戶設置的操作結果。設置界面只會出現小程序已經向用戶請求過的權限。

屬性類型默認值必填說明最低版本
withSubscriptionsBooleanfalse是否同時獲取用戶訂閱消息的訂閱狀態,默認不獲取。注意:withSubscriptions 只返回用戶勾選過訂閱面板中的“總是保持以上選擇,不再詢問”的訂閱消息。2.10.3
successfunction
接口調用成功的回調函數
failfunction
接口調用失敗的回調函數
completefunction
接口調用結束的回調函數(調用成功、失敗都會執行)

object.success回調函數如下:

屬性類型說明最低版本
authSettingAuthSetting用戶授權結果
subscriptionsSettingSubscriptionsSetting用戶訂閱消息設置,接口參數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 class="body" bindtap="location1">獲取地理位置</view><view  class="body">{{context}}</view><view class="body" bindtap="location2">開始錄音</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()接口會出現修改權限的操作界面。

感謝各位的閱讀,以上就是“微信小程序的權限接口有哪些及怎么用”的內容了,經過本文的學習后,相信大家對微信小程序的權限接口有哪些及怎么用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

内黄县| 襄汾县| 延寿县| 牟定县| 尉犁县| 巴中市| 浮梁县| 津南区| 灵川县| 肥城市| 紫阳县| 睢宁县| 宝兴县| 游戏| 镶黄旗| 寿光市| 蕲春县| 锦州市| 玛曲县| 昭苏县| 吐鲁番市| 来安县| 绥芬河市| 黎平县| 塔河县| 莎车县| 长治县| 丽水市| 霍山县| 静宁县| 扎鲁特旗| 南乐县| 昔阳县| 义马市| 淄博市| 皋兰县| 扬中市| 白朗县| 政和县| 临颍县| 扶沟县|