permissions.contains()

檢查擴充套件是否具有在給定的 permissions.Permissions 物件中列出的許可權。

Permissions 引數可以包含一個 origins 屬性(一個 主機許可權 陣列)或一個 permissions 屬性(一個 API 許可權 陣列),或者兩者都包含。

這是一個非同步函式,返回一個 Promise。如果擴充套件具有所有指定的許可權,則 Promise 解析為 true。對於主機許可權,如果擴充套件的許可權 模式匹配 origins 中列出的許可權,則認為它們匹配。

語法

js
let getContains = browser.permissions.contains(
  permissions                // Permissions object
)

引數

permissions

一個 permissions.Permissions 物件。

返回值

一個 Promise,如果擴充套件已擁有 permissions 引數中列出的所有許可權,則會解析為 true,否則解析為 false

示例

js
// Extension permissions are:
// "webRequest", "tabs", "*://*.mozilla.org/*"

let testPermissions1 = {
  origins: ["*://mozilla.org/"],
  permissions: ["tabs"],
};

const testResult1 = await browser.permissions.contains(testPermissions1);
console.log(testResult1); // true

let testPermissions2 = {
  origins: ["*://mozilla.org/"],
  permissions: ["tabs", "alarms"],
};

const testResult2 = await browser.permissions.contains(testPermissions2);
console.log(testResult2); // false, "alarms" doesn't match

let testPermissions3 = {
  origins: ["https://mdn.club.tw/"],
  permissions: ["tabs", "webRequest"],
};

const testResult3 = await browser.permissions.contains(testPermissions3);
console.log(testResult3); // true: "https://mdn.club.tw/", matches: "*://*.mozilla.org/*"

let testPermissions4 = {
  origins: ["https://example.org/"],
};

const testResult4 = await browser.permissions.contains(testPermissions4);
console.log(testResult4); // false: "https://example.org/", `origins` doesn't match

擴充套件程式示例

瀏覽器相容性

注意:此 API 基於 Chromium 的 chrome.permissions API。