微信小程序用戶后臺定位及錄音授權(quán)及請求示例
官方文檔
<https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/authorize.html>
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/setting/wx.getSetting.html
小程序授權(quán)
1 因為部分功能需要用同意后才能使用。
2 wx.getSetting來判斷該用戶有沒有對接口授權(quán),我判斷哪個接口,就必須給wx.getSetting傳對應(yīng)的scope值
一個scope值對應(yīng)這個一個或多個接口
3 如果我們從wx.getSetting中發(fā)現(xiàn)scope值是false,標識沒有授權(quán),我們可以通過wx.authorize發(fā)起授權(quán),對那個接口授權(quán),就給wx.authorize傳對應(yīng)scope值就可以了。如果用用戶同意授權(quán),就可以直接使用對應(yīng)的接口了。
4 但是scope.userInfo沒有辦法使用wx.authorize自動彈起彈框。必須要用戶手動點擊按鈕喚起授權(quán)彈框。
代碼格式:
<button open-type="getUserInfo" bindgetuserinfo="user1">用戶信息</button>
我們可以再響應(yīng)函數(shù)的參數(shù)中獲取用戶信息。e.detail,這個和直接調(diào)用wx.getUserInfo獲取的內(nèi)容一樣。
獲取用戶授權(quán)設(shè)置
開發(fā)者可以使用 wx.getSetting 獲取用戶當前的授權(quán)狀態(tài)。
提前發(fā)起授權(quán)請求
開發(fā)者可以使用 wx.authorize 在調(diào)用需授權(quán) API 之前,提前向用戶發(fā)起授權(quán)請求。
scope 列表
scope | 對應(yīng)接口 | 描述 |
---|---|---|
scope.userInfo | wx.getUserInfo | 用戶信息 |
scope.userLocation | wx.getLocation, wx.chooseLocation | 地理位置 |
scope.userLocationBackground | wx.startLocationUpdateBackground | 后臺定位 |
scope.address | wx.chooseAddress | 通訊地址 |
scope.invoiceTitle | wx.chooseInvoiceTitle | 發(fā)票抬頭 |
scope.invoice | wx.chooseInvoice | 獲取發(fā)票 |
scope.werun | wx.getWeRunData | 微信運動步數(shù) |
scope.record | wx.startRecord | 錄音功能 |
scope.writePhotosAlbum | wx.saveImageToPhotosAlbum, wx.saveVideoToPhotosAlbum | 保存到相冊 |
scope.camera | camera 組件 | 攝像頭 |
授權(quán)有效期
一旦用戶明確同意或拒絕過授權(quán),其授權(quán)關(guān)系會記錄在后臺,直到用戶主動刪除小程序。
注意事項
wx.authorize({scope: "scope.userInfo"}) 用戶信息 的授權(quán)必須button用戶手動觸發(fā)彈窗,授權(quán)
其他錄音等授權(quán),可以直接寫在生命周期中,自動彈窗,用戶點擊授權(quán)
wx.authorize({scope: "scope.userInfo"}),不會彈出授權(quán)窗口,請使用 ``open-type="getUserInfo"
<button bindgetuserinfo="user1" open-type="getUserInfo">個人信息1</button>
需要授權(quán) scope.userLocation、scope.userLocationBackground 時必須配置地理位置用途說明。
后臺定位
與其它類型授權(quán)不同的是,scope.userLocationBackground 不會彈窗提醒用戶。需要用戶在設(shè)置頁中,主動將“位置信息”選項設(shè)置為“使用小程序期間和離開小程序后”。開發(fā)者可以通過調(diào)用wx.openSetting,打開設(shè)置頁。
案例:個人信息getUserInfo
# wxml文件: <button bindtap="lu">錄音</button> <button bindtap="user" open-type="getUserInfo">個人信息</button> <button bindgetuserinfo="user1" open-type="getUserInfo">個人信息1</button>
# js文件: lu:function(){ wx.getSetting({ success(res){ if (!res.authSetting['scope.record']) { wx.authorize({ scope: 'scope.record', // 授權(quán)的功能 success() { // 用戶已經(jīng)同意小程序使用錄音功能,后續(xù)調(diào)用 wx.startRecord 接口不會彈窗詢問 wx.startRecord() // 使用接口 }, fail() { // 用戶不同意進入fail回調(diào) console.log("你沒有授權(quán)") } }) } else { wx.startRecord() //使用接口 } } }) }, user: function () { wx.getSetting({ success(res) { if (!res.authSetting['scope.userInfo']) { wx.authorize({ scope: 'scope.userinfo', // 授權(quán)的功能 success() { console.log('進來了') wx.startRecord() // 使用接口 } }) } else { console.log('已經(jīng)授權(quán)了') wx.startRecord() //使用接口 } } }) }, user1:function(e){ console.log('e',e.detail) wx.getSetting({ success(res){ if (res.authSetting['scope.userInfo']){ wx.getUserInfo({ success:(res) => { console.log('res',res) } }) } } }) },
錄音等,可以寫在onLaunch中
App({ onLaunch: function () { // 獲取用戶信息 wx.getSetting({ success: res => { if (res.authSetting['scope.record']) { // 已經(jīng)授權(quán),可以直接調(diào)用 record 獲取頭像昵稱,不會彈框 wx.getUserInfo({ success: res => { // 可以將 res 發(fā)送給后臺解碼出 unionId this.globalData.userInfo = res.record // 由于 record 是網(wǎng)絡(luò)請求,可能會在 Page.onLoad 之后才返回 // 所以此處加入 callback 以防止這種情況 if (this.userInfoReadyCallback) { this.userInfoReadyCallback(res) } } }) } } })
以上就是微信小程序用戶后臺定位及錄音授權(quán)及請求示例的詳細內(nèi)容,更多關(guān)于微信小程序用戶后臺定位及錄音授權(quán)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JavaScript獲取URL參數(shù)的幾種方法小結(jié)
在Web開發(fā)中,經(jīng)常需要從URL中提取參數(shù)來進行相應(yīng)的操作,本文將深度解析在JavaScript中獲取URL參數(shù)的幾種方法,并附帶一些擴展與高級技巧,希望對你有所幫助2024-09-09JavaScript使用setTimeout實現(xiàn)倒計時效果
這篇文章主要為大家詳細介紹了JavaScript使用setTimeout實現(xiàn)倒計時效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-02-02javascript實現(xiàn)計算指定范圍內(nèi)的質(zhì)數(shù)示例
這篇文章主要介紹了javascript實現(xiàn)計算指定范圍內(nèi)的質(zhì)數(shù),涉及javascript數(shù)值計算與判斷相關(guān)操作技巧,需要的朋友可以參考下2018-12-12xmlplus組件設(shè)計系列之網(wǎng)格(DataGrid)(10)
xmlplus 是一個JavaScript框架,用于快速開發(fā)前后端項目。這篇文章主要介紹了xmlplus組件設(shè)計系列之xmlplus網(wǎng)格,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05