requestPermission

2022-06-13 15:17 更新

向系統(tǒng)請(qǐng)求某個(gè)或多個(gè)權(quán)限。為幫助您更好的使用該接口,論壇維護(hù)了一個(gè)示例。

對(duì)于iOS平臺(tái),第一次請(qǐng)求權(quán)限時(shí)會(huì)彈出權(quán)限選擇框,如果用戶(hù)選擇了不允許,那么再次請(qǐng)求權(quán)限時(shí)將不會(huì)再?gòu)棾鲞x擇框(定位權(quán)限如果用戶(hù)選擇了下次詢(xún)問(wèn),則會(huì)再次彈出),而是直接跳轉(zhuǎn)到系統(tǒng)設(shè)置中該應(yīng)用的設(shè)置界面。

對(duì)于Android平臺(tái),只要用戶(hù)沒(méi)有選擇“不再提示”,那么再次請(qǐng)求權(quán)限時(shí)都將繼續(xù)彈出權(quán)限選擇框;如果用戶(hù)選擇了“不再提示”,那么再次請(qǐng)求權(quán)限時(shí)將不會(huì)再?gòu)棾鲞x擇框,而是直接跳轉(zhuǎn)到系統(tǒng)設(shè)置的該應(yīng)用權(quán)限設(shè)置界面。

requestPermission({params}, callback(ret,err))

params

list:

  • 類(lèi)型:字符串?dāng)?shù)組
  • 默認(rèn)值:無(wú)
  • 描述:權(quán)限列表。
  • 取值范圍:

camera               //相機(jī)/拍照/錄像
contacts             //聯(lián)系人讀取/寫(xiě)入
contacts-r           //僅聯(lián)系人讀取。iOS中等同于contacts。
contacts-w           //僅聯(lián)系人寫(xiě)入。iOS中等同于contacts。
microphone           //使用麥克風(fēng)錄制音頻
photos               //訪問(wèn)相冊(cè)|本地存儲(chǔ)空間。Android上等同于storage。
photos-w             //僅寫(xiě)入相冊(cè)|本地存儲(chǔ)空間。Android上等同于storage-w。
location             //定位
locationAlways       //后臺(tái)定位,只支持iOS
locationFullAccuracy //臨時(shí)精確定位,請(qǐng)求時(shí)需傳入purposeKey參數(shù),申請(qǐng)的臨時(shí)精確定位只在App生命周期內(nèi)有效。注意:僅當(dāng)location、locationAlways權(quán)限返回的reducedAccuracy字段為true時(shí)才請(qǐng)求臨時(shí)精確定位,若用戶(hù)繼續(xù)選擇關(guān)閉精確定位時(shí)回調(diào)方法不會(huì)被執(zhí)行,所以此權(quán)限應(yīng)和其它權(quán)限分開(kāi)進(jìn)行請(qǐng)求。只支持iOS 14及以上系統(tǒng)。
notification         //狀態(tài)欄通知
calendar             //日歷讀取/寫(xiě)入。只支持Android
calendar-r           //僅日歷讀取
calendar-w           //僅日歷寫(xiě)入
phone                //直接撥打電話/獲取手機(jī)號(hào)碼|IMEI。只支持Android
phone-call           //僅直接撥打電話
phone-r              //僅獲取手機(jī)號(hào)碼|IMEI
phone-r-log          //讀取通話記錄
phone-w-log          //寫(xiě)入通話記錄
sensor               //傳感器.只支持Android
sms                  //讀取短信/后臺(tái)發(fā)送短信。只支持Android
sms-s                //僅后臺(tái)發(fā)送短信
sms-r                //僅讀取短信
storage              //讀取/寫(xiě)入|相冊(cè)|多媒體|本地存儲(chǔ)空間。只支持Android
storage-r            //僅讀取|相冊(cè)|多媒體|文件|本地存儲(chǔ)空間
storage-w            //僅寫(xiě)入|相冊(cè)|多媒體|文件|本地存儲(chǔ)空間

code:

  • 類(lèi)型:數(shù)字
  • 默認(rèn)值:無(wú)
  • 描述:請(qǐng)求跟蹤碼,用于回調(diào)結(jié)果,只支持Android。

purposeKey:

  • 類(lèi)型:字符串
  • 默認(rèn)值:無(wú)
  • 描述:請(qǐng)求locationFullAccuracy權(quán)限的意圖字段,在云編譯界面添加“精確定位(臨時(shí))”權(quán)限時(shí)輸入purposeKey及對(duì)應(yīng)的權(quán)限使用描述,系統(tǒng)通過(guò)purposeKey找到對(duì)應(yīng)的權(quán)限使用描述,然后在開(kāi)啟精確定位的彈框中將描述語(yǔ)展示給用戶(hù)。

callback

ret:

  • 類(lèi)型:JSON對(duì)象
  • 內(nèi)部字段:

{
    list:[{
        name:              //權(quán)限名,字符串類(lèi)型
        granted:           //是否允許,布爾類(lèi)型
    }],
    never:                 //用戶(hù)是否選擇了“不再提示“,只支持Android,布爾類(lèi)型
    code:                  //請(qǐng)求跟蹤碼,只支持Android,數(shù)字類(lèi)型。
}

示例代碼

var permission = 'camera';
var resultList = api.hasPermission({
    list: [permission]
});
if (resultList[0].granted) {
    // 已授權(quán),可以繼續(xù)下一步操作
    api.alert({
        msg: '已授權(quán)'
    });
} else {
    api.confirm({
        msg: '應(yīng)用需要您的授權(quán)才能訪問(wèn)相機(jī)',
        buttons: ['取消', '去設(shè)置']
    }, function(ret) {
        if (ret.buttonIndex == 2) {
            api.requestPermission({
                list: [permission],
            }, function(res) {
                if (res.list[0].granted) {
                    // 已授權(quán),可以繼續(xù)下一步操作
                    api.alert({
                        msg: '已授權(quán)'
                    });
                }
            });
        }
    });
}

可用性

iOS系統(tǒng),Android系統(tǒng)

可提供的1.2.76及更高版本

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)