permissions.request()
詢問使用者是否授予 permissions.Permissions 物件中列出的許可權。
Permissions 引數可以包含一個 origins 屬性(一個 主機許可權 陣列)、一個 permissions 屬性(一個 API 許可權 陣列),或者兩者都包含。
請求的許可權必須在 optional_permissions manifest.json 鍵中定義。origins 屬性可以包含與可選許可權匹配的主機子集的許可權。例如,如果 optional_permissions 包含 "*://mozilla.org/",則 permissions.origins 可以包含 "https://mdn.club.tw/"。
對 僅可選許可權 的請求不能包含任何其他可選許可權。
該請求只能在 使用者操作 的處理程式中進行。除非所有請求的許可權都已靜默授予,否則瀏覽器會詢問使用者是否授予請求的許可權。所有請求的許可權將作為一個整體進行處理:要麼全部授予,要麼都不授予。
擴充套件會保留任何已授予的許可權,即使在升級、停用和重新啟用週期中也是如此。
這是一個非同步函式,返回一個 Promise。
語法
js
let requesting = browser.permissions.request(
permissions // Permissions object
)
引數
返回值
一個 Promise,如果擴充套件被授予 permissions 引數中列出的許可權,則該 Promise fulfilled 為 true;否則為 false。
示例
此程式碼添加了一個點選處理程式,該處理程式請求各種許可權,然後在請求完成後記錄請求結果以及擴充套件的許可權。
js
const permissionsToRequest = {
permissions: ["bookmarks", "history"],
origins: ["https://mdn.club.tw/"],
};
async function requestPermissions() {
function onResponse(response) {
if (response) {
console.log("Permission was granted");
} else {
console.log("Permission was refused");
}
return browser.permissions.getAll();
}
const response = await browser.permissions.request(permissionsToRequest);
const currentPermissions = await onResponse(response);
console.log(`Current permissions:`, currentPermissions);
}
document
.querySelector("#request")
.addEventListener("click", requestPermissions);
擴充套件程式示例
瀏覽器相容性
載入中…
注意:此 API 基於 Chromium 的 chrome.permissions API。