日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本篇文章給大家帶來了關于微信小程序的相關問題,其中主要介紹了微信小程序中的權限接口的相關內容,包括了用戶授權接口、獲取用戶權限設置接口、打開用戶權限設置接口等內容,下面一起來看一下,希望對大家有幫助。


歸納整理微信小程序權限接口


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()接口會出現修改權限的操作界面。

案例效果如下:


歸納整理微信小程序權限接口

點擊獲取地理位置:


歸納整理微信小程序權限接口


點擊允許之后會顯示當前所在的經緯度。


歸納整理微信小程序權限接口

點擊開始錄音按鈕出現麥克風授權:


歸納整理微信小程序權限接口

分享到:
標簽:微信小程序 小程序權限接口
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定