歸納整理微信小程序權(quán)限接口
May 16, 2022 am 11:43 AM本篇文章給大家?guī)?lái)了關(guān)于微信小程序的相關(guān)問(wèn)題,其中主要介紹了微信小程序中的權(quán)限接口的相關(guān)內(nèi)容,包括了用戶授權(quán)接口、獲取用戶權(quán)限設(shè)置接口、打開(kāi)用戶權(quán)限設(shè)置接口等內(nèi)容,下面一起來(lái)看一下,希望對(duì)大家有幫助。
【相關(guān)學(xué)習(xí)推薦:小程序?qū)W習(xí)教程】
1、權(quán)限接口
??部分接口需要經(jīng)過(guò)用戶授權(quán)統(tǒng)一才能調(diào)用。我們把這些接口按使用范圍分成多個(gè)scope,用戶選擇對(duì)scope進(jìn)行授權(quán),當(dāng)授權(quán)給一個(gè)scope之后,其對(duì)應(yīng)的所有接口都可以直接使用,此類接口調(diào)用時(shí):
- 如果用戶未接受或拒絕此權(quán)限,會(huì)彈窗詢問(wèn)用戶,用戶單擊統(tǒng)一后方可調(diào)用接口。
- 如果用戶已授權(quán),可以直接調(diào)用接口。
- 如果用戶已拒絕授權(quán),則不會(huì)出現(xiàn)彈窗,而會(huì)直接進(jìn)入接口fail回調(diào)。
??此類接口再權(quán)限中的對(duì)象scope的字段和接口的對(duì)應(yīng)關(guān)系如下表所示。
scope | 對(duì)應(yīng)接口 | 描述 |
---|---|---|
scope.userLocation | wx.getLocation, wx.chooseLocation, wx.startLocationUpdate | 地理位置 |
scope.userLocationBackground | wx.startLocationUpdateBackground | 后臺(tái)定位 |
scope.record | wx.startRecord, wx.joinVoIPChat, RecorderManager.start | 麥克風(fēng) |
scope.camera | camera組件, wx.createVKSession | 攝像頭 |
scope.bluetooth | wx.openBluetoothAdapter, wx.createBLEPeripheralServer | 藍(lán)牙 |
scope.writePhotosAlbum | wx.saveImageToPhotosAlbum, wx.saveVideoToPhotosAlbum | 添加到相冊(cè) |
scope.addPhoneContact | wx.wx.addPhoneContact | 添加到聯(lián)系人 |
scope.addPhoneCalendar | wx.addPhoneRepeatCalendar, wx.addPhoneCalendar | 添加到日歷 |
scope.werun | wx.getWeRunData | 微信運(yùn)動(dòng)步數(shù) |
scope.address | wx.chooseAddress | 通訊地址(已取消授權(quán),可以直接調(diào)用對(duì)應(yīng)接口) |
scope.invoiceTitle | wx.chooseInvoiceTitle | 發(fā)票抬頭(已取消授權(quán),可以直接調(diào)用對(duì)應(yīng)接口) |
scope.invoice | wx.chooseInvoice | 獲取發(fā)票(已取消授權(quán),可以直接調(diào)用對(duì)應(yīng)接口) |
scope.userInfo | wx.getUserInfo | 用戶信息(小程序已回收,請(qǐng)使用頭像昵稱填寫,小游戲可繼續(xù)調(diào)用) |
??小程序提供了三組接口對(duì)接口權(quán)限進(jìn)行相應(yīng)的操作:wx.getSetting()
獲取用戶當(dāng)前的授權(quán)狀態(tài);wx.openSetting()
打開(kāi)設(shè)置界面以引導(dǎo)用戶開(kāi)啟授權(quán);wx.authorize()
改變授權(quán)狀態(tài)。
1.1 用戶授權(quán)接口wx.authorize(Object object)
??提前向用戶發(fā)起授權(quán)請(qǐng)求。該接口調(diào)用后會(huì)立刻彈窗詢問(wèn)用戶是否同意授權(quán)小程序使用某項(xiàng)功能或獲取用戶的某些數(shù)據(jù),但不會(huì)實(shí)際調(diào)用對(duì)應(yīng)接口。如果用戶之前已經(jīng)同意授權(quán),則不會(huì)出現(xiàn)彈窗,直接返回成功。屬性如下表所示。
屬性 | 類型 | 默認(rèn)值 | 必填 | 說(shuō)明 |
---|---|---|---|---|
scope | string | 是 | 需要獲取權(quán)限的 scope,詳見(jiàn) scope 列表 | |
success | function | 否 | 接口調(diào)用成功的回調(diào)函數(shù) | |
fail | function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù) | |
complete | function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行) |
??官網(wǎng)的示例代碼:
//?可以通過(guò)?wx.getSetting?先查詢一下用戶是否授權(quán)了?"scope.record"?這個(gè)?scopewx.getSetting({ ??success(res)?{ ????if?(!res.authSetting['scope.record'])?{ ??????wx.authorize({ ????????scope:?'scope.record', ????????success?()?{ ??????????//?用戶已經(jīng)同意小程序使用錄音功能,后續(xù)調(diào)用?wx.startRecord?接口不會(huì)彈窗詢問(wèn) ??????????wx.startRecord() ????????} ??????}) ????} ??}})
1.2 獲取用戶權(quán)限設(shè)置接口wx.getSetting(Object object)
??該接口獲取用戶的當(dāng)前設(shè)置。返回值中只會(huì)出現(xiàn)小程序已經(jīng)向用戶請(qǐng)求過(guò)的權(quán)限。屬性如下:
屬性 | 類型 | 默認(rèn)值 | 必填 | 說(shuō)明 | 最低版本 |
---|---|---|---|---|---|
withSubscriptions | Boolean | false | 否 | 是否同時(shí)獲取用戶訂閱消息的訂閱狀態(tài),默認(rèn)不獲取。注意:withSubscriptions 只返回用戶勾選過(guò)訂閱面板中的“總是保持以上選擇,不再詢問(wèn)”的訂閱消息。 | 2.10.1 |
success | function | 否 | 接口調(diào)用成功的回調(diào)函數(shù) | ||
fail | function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù) | ||
complete | function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行) |
object.success回調(diào)函數(shù)如下:
屬性 | 類型 | 說(shuō)明 | 最低版本 |
---|---|---|---|
authSetting | AuthSetting | 用戶授權(quán)結(jié)果 | |
subscriptionsSetting | SubscriptionsSetting | 用戶訂閱消息設(shè)置,接口參數(shù)withSubscriptions 值為true 時(shí)才會(huì)返回。 |
2.10.1 |
miniprogramAuthSetting | AuthSetting | 在插件中調(diào)用時(shí),當(dāng)前宿主小程序的用戶授權(quán)結(jié)果 |
??官網(wǎng)示例代碼:
wx.getSetting({ ??success?(res)?{ ????console.log(res.authSetting) ????//?res.authSetting?=?{ ????//???"scope.userInfo":?true, ????//???"scope.userLocation":?true ????//?} ??}})
1.3 打開(kāi)用戶權(quán)限設(shè)置接口wx.openSetting(Object object)
??該接口調(diào)用客戶端小程序設(shè)置界面,返回用戶設(shè)置的操作結(jié)果。設(shè)置界面只會(huì)出現(xiàn)小程序已經(jīng)向用戶請(qǐng)求過(guò)的權(quán)限。
屬性 | 類型 | 默認(rèn)值 | 必填 | 說(shuō)明 | 最低版本 |
---|---|---|---|---|---|
withSubscriptions | Boolean | false | 否 | 是否同時(shí)獲取用戶訂閱消息的訂閱狀態(tài),默認(rèn)不獲取。注意:withSubscriptions 只返回用戶勾選過(guò)訂閱面板中的“總是保持以上選擇,不再詢問(wèn)”的訂閱消息。 | 2.10.3 |
success | function | 否 | 接口調(diào)用成功的回調(diào)函數(shù) | ||
fail | function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù) | ||
complete | function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行) |
object.success回調(diào)函數(shù)如下:
屬性 | 類型 | 說(shuō)明 | 最低版本 |
---|---|---|---|
authSetting | AuthSetting | 用戶授權(quán)結(jié)果 | |
subscriptionsSetting | SubscriptionsSetting | 用戶訂閱消息設(shè)置,接口參數(shù)withSubscriptions 值為true 時(shí)才會(huì)返回。 |
2.10.3 |
- 注意:2.3.0 版本開(kāi)始,用戶發(fā)生點(diǎn)擊行為后,才可以跳轉(zhuǎn)打開(kāi)設(shè)置頁(yè),管理授權(quán)信息。
??官網(wǎng)示例代碼:
wx.openSetting({ ??success?(res)?{ ????console.log(res.authSetting) ????//?res.authSetting?=?{ ????//???"scope.userInfo":?true, ????//???"scope.userLocation":?true ????//?} ??}})
2、授權(quán)案例
??本例使用獲取地理位置接口wx.getLocation()
和開(kāi)始錄音接口wx.startRecord()
進(jìn)行相關(guān)操作,而這兩個(gè)接口都需要設(shè)置操作權(quán)限。
Setting.wxml代碼如下:
<!--index.wxml--><view class="body" bindtap="location1">獲取地理位置</view><view class="body">{{context}}</view><view class="body" bindtap="location2">開(kāi)始錄音</view>
Setting.js代碼如下:
//index.js//獲取應(yīng)用實(shí)例const?app?=?getApp()Page({ ??data:?{ ??? ??}, ?? ??onLoad:?function?()?{ ????context:'' ??}, ??location1:function(){ //獲取地理位置 ????var?that=this ????wx.getSetting({ //獲取用戶權(quán)限設(shè)置接口 ??????success(res)?{ ????????console.log(res) ????????if?(!res.authSetting['scope.userLocation'])?{ ??????????wx.authorize({ //授權(quán) ????????????scope:?'scope.userLocation', //地理位置權(quán)限,看線上面的scope對(duì)應(yīng)的參數(shù) ????????????success()?{ ??????????????wx.getLocation({ //獲取當(dāng)前的地理位置 ????????????????success:?function(res)?{ ?????????????????console.log(res) ??????????????????that.setData({?context:?"你所在的經(jīng)度是"?+?res.latitude+"你所在的緯度是"+res.longitude}) ????????????????}, ??????????????}) ????????????} ??????????}) ????????} ??????} ????}) ??}, ? ??location2:?function?()?{ //錄音 ????var?that?=?this ?? ????????wx.getSetting({ ??????????success(res)?{ ????????????console.log(res.authSetting) ????????????if?(!res.authSetting['scope.record'])?{ ??????????????wx.openSetting({ //打開(kāi)用戶權(quán)限設(shè)置界面 ????????????????success(res)?{ ??????????????????console.log(res) ??????????????????wx.startRecord({ //開(kāi)始錄音 ????????????????????success(res)?{ ??????????????????????const?tempFilePath?=?res.tempFilePath ??????????????????????console.log("錄音結(jié)束") ????????????????????} ??????????????}) ????????????}? ????????}) ????????}} ????????}) ??}})
?? location()1函數(shù)實(shí)現(xiàn)獲取地理位置的功能,該函數(shù)先調(diào)用wx.getSetting()接口獲取權(quán)限狀態(tài),然后調(diào)用wx.authorize()接口修改地理位置權(quán)限scope.userLocation。location2()函數(shù)實(shí)現(xiàn)錄音功能,該函數(shù)先調(diào)用wx.getSetting()接口獲取權(quán)限狀態(tài),然后調(diào)用wx.openSetting()接口打開(kāi)錄音權(quán)限設(shè)置界面來(lái)修改錄音權(quán)限。從本例可以看出設(shè)置權(quán)限的時(shí)候應(yīng)該先調(diào)用wx.getSetting()接口來(lái)修改權(quán)限狀態(tài),在沒(méi)有權(quán)限打開(kāi)的情況下可以調(diào)用wx.authorize()接口或者wx.openSetting()接口來(lái)修改權(quán)限狀態(tài),wx.authorize()接口不出現(xiàn)修改權(quán)限的操作權(quán)限,而wx.openSetting()接口會(huì)出現(xiàn)修改權(quán)限的操作界面。
??案例效果如下:
??點(diǎn)擊獲取地理位置:
??點(diǎn)擊允許之后會(huì)顯示當(dāng)前所在的經(jīng)緯度。
??點(diǎn)擊開(kāi)始錄音按鈕出現(xiàn)麥克風(fēng)授權(quán):
【相關(guān)學(xué)習(xí)推薦:小程序?qū)W習(xí)教程】
以上是歸納整理微信小程序權(quán)限接口的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6
視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版
神級(jí)代碼編輯軟件(SublimeText3)

閑魚(yú)官方微信小程序悄然上線,在小程序中可以發(fā)布閑置與買家/賣家私信交流、查看個(gè)人資料及訂單、搜索物品等,有用好奇閑魚(yú)微信小程序叫什么,現(xiàn)在快來(lái)看一下。閑魚(yú)微信小程序叫什么答案:閑魚(yú),閑置交易二手買賣估價(jià)回收。1、在小程序中可以發(fā)布閑置、與買家/賣家私信交流、查看個(gè)人資料及訂單、搜索指定物品等功能;2、在小程序的頁(yè)面中有首頁(yè)、附近、發(fā)閑置、消息、我的5項(xiàng)功能;3、想要使用的話必要要開(kāi)通微信支付才可以購(gòu)買;

實(shí)現(xiàn)微信小程序中的圖片濾鏡效果隨著社交媒體應(yīng)用的流行,人們?cè)絹?lái)越喜歡在照片中應(yīng)用濾鏡效果,以增強(qiáng)照片的藝術(shù)效果和吸引力。在微信小程序中也可以實(shí)現(xiàn)圖片濾鏡效果,為用戶提供更多有趣和創(chuàng)造性的照片編輯功能。本文將介紹如何在微信小程序中實(shí)現(xiàn)圖片濾鏡效果,并提供具體的代碼示例。首先,我們需要在微信小程序中使用canvas組件來(lái)加載和編輯圖片。canvas組件可以在頁(yè)面

實(shí)現(xiàn)微信小程序中的下拉菜單效果,需要具體代碼示例隨著移動(dòng)互聯(lián)網(wǎng)的普及,微信小程序成為了互聯(lián)網(wǎng)開(kāi)發(fā)的重要一環(huán),越來(lái)越多的人開(kāi)始關(guān)注和使用微信小程序。微信小程序的開(kāi)發(fā)相比傳統(tǒng)的APP開(kāi)發(fā)更加簡(jiǎn)便快捷,但也需要掌握一定的開(kāi)發(fā)技巧。在微信小程序的開(kāi)發(fā)中,下拉菜單是一個(gè)常見(jiàn)的UI組件,實(shí)現(xiàn)了更好的用戶操作體驗(yàn)。本文將詳細(xì)介紹如何在微信小程序中實(shí)現(xiàn)下拉菜單效果,并提供具

閑魚(yú)官方微信小程序已經(jīng)悄然上線,它為用戶提供了一個(gè)便捷的平臺(tái),讓你可以輕松地發(fā)布和交易閑置物品。在小程序中,你可以與買家或賣家進(jìn)行私信交流,查看個(gè)人資料和訂單,以及搜索你想要的物品。那么閑魚(yú)在微信小程序中究竟叫什么呢,這篇教程攻略將為您詳細(xì)介紹,想要了解的用戶們快來(lái)跟著本文繼續(xù)閱讀吧!閑魚(yú)微信小程序叫什么答案:閑魚(yú),閑置交易二手買賣估價(jià)回收。1、在小程序中可以發(fā)布閑置、與買家/賣家私信交流、查看個(gè)人資料及訂單、搜索指定物品等功能;2、在小程序的頁(yè)面中有首頁(yè)、附近、發(fā)閑置、消息、我的5項(xiàng)功能;3、

微信小程序?qū)崿F(xiàn)圖片上傳功能隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,微信小程序已經(jīng)成為了人們生活中不可或缺的一部分。微信小程序不僅提供了豐富的應(yīng)用場(chǎng)景,還支持開(kāi)發(fā)者自定義功能,其中包括圖片上傳功能。本文將介紹如何在微信小程序中實(shí)現(xiàn)圖片上傳功能,并提供具體的代碼示例。一、前期準(zhǔn)備工作在開(kāi)始編寫代碼之前,我們需要先下載并安裝微信開(kāi)發(fā)者工具,并注冊(cè)成為微信開(kāi)發(fā)者。同時(shí),還需要了解微信

實(shí)現(xiàn)微信小程序中的圖片旋轉(zhuǎn)效果,需要具體代碼示例微信小程序是一種輕量級(jí)的應(yīng)用程序,為用戶提供了豐富的功能和良好的用戶體驗(yàn)。在小程序中,開(kāi)發(fā)者可以利用各種組件和API來(lái)實(shí)現(xiàn)各種效果。其中,圖片旋轉(zhuǎn)效果是一種常見(jiàn)的動(dòng)畫(huà)效果,可以為小程序增添趣味性和視覺(jué)效果。在微信小程序中實(shí)現(xiàn)圖片旋轉(zhuǎn)效果,需要使用小程序提供的動(dòng)畫(huà)API。下面是一個(gè)具體的代碼示例,展示了如何在小程

使用微信小程序?qū)崿F(xiàn)輪播圖切換效果微信小程序是一種輕量級(jí)的應(yīng)用程序,具有簡(jiǎn)單、高效的開(kāi)發(fā)和使用特點(diǎn)。在微信小程序中,實(shí)現(xiàn)輪播圖切換效果是常見(jiàn)的需求。本文將介紹如何使用微信小程序?qū)崿F(xiàn)輪播圖切換效果,并給出具體的代碼示例。首先,在微信小程序的頁(yè)面文件中,添加一個(gè)輪播圖組件。例如,可以使用<swiper>標(biāo)簽來(lái)實(shí)現(xiàn)輪播圖的切換效果。在該組件中,可以通過(guò)b

實(shí)現(xiàn)微信小程序中的滑動(dòng)刪除功能,需要具體代碼示例隨著微信小程序的流行,開(kāi)發(fā)者們?cè)陂_(kāi)發(fā)過(guò)程中經(jīng)常會(huì)遇到一些常見(jiàn)功能的實(shí)現(xiàn)問(wèn)題。其中,滑動(dòng)刪除功能是一個(gè)常見(jiàn)、常用的功能需求。本文將為大家詳細(xì)介紹如何在微信小程序中實(shí)現(xiàn)滑動(dòng)刪除功能,并給出具體的代碼示例。一、需求分析在微信小程序中,滑動(dòng)刪除功能的實(shí)現(xiàn)涉及到以下要點(diǎn):列表展示:要顯示可滑動(dòng)刪除的列表,每個(gè)列表項(xiàng)需要包
