permissions.request()

Fordert den Benutzer auf, die im permissions.Permissions-Objekt aufgelisteten Berechtigungen zu erteilen.

Das Permissions-Argument kann eine origins-Eigenschaft, ein Array von Host-Berechtigungen, eine permissions-Eigenschaft, ein Array von API-Berechtigungen oder beides enthalten.

Angeforderte Berechtigungen müssen im optional_permissions-Schlüssel der manifest.json definiert sein. Die origins-Eigenschaft kann Berechtigungen enthalten, die mit einem Unterabschnitt der Hosts übereinstimmen, die von einer optionalen Berechtigung abgedeckt werden. Zum Beispiel, wenn optional_permissions "*://mozilla.org/" enthält, dann kann permissions.origins "https://developer.mozilla.org/" enthalten.

Anfragen für ausschließlich optionale Berechtigungen dürfen keine anderen optionalen Berechtigungen enthalten.

Die Anfrage kann nur innerhalb des Handlers für eine Benutzeraktion gestellt werden. Es sei denn, alle angeforderten Berechtigungen sind solche, die stillschweigend gewährt werden, fragt der Browser den Benutzer, ob die angeforderten Berechtigungen gewährt werden sollen. Eine Anfrage wird für alle angeforderten Berechtigungen gestellt: Entweder werden alle Berechtigungen gewährt oder keine.

Die Erweiterung behält alle gewährten Berechtigungen, selbst bei Upgrades sowie Deaktivierungs- und Aktivierungszyklen.

Dies ist eine asynchrone Funktion, die ein Promise zurückgibt.

Syntax

js
let requesting = browser.permissions.request(
  permissions                // Permissions object
)

Parameter

Rückgabewert

Ein Promise, das mit true erfüllt wird, wenn der Erweiterung die im permissions-Argument genannten Berechtigungen gewährt werden, oder andernfalls false.

Browser-Kompatibilität

BCD tables only load in the browser

Beispiele

Dieser Code fügt einen Klick-Handler hinzu, der verschiedene Berechtigungen anfragt, dann das Ergebnis der Anfrage und die Berechtigungen der Erweiterung nach Abschluss der Anfrage protokolliert.

js
const permissionsToRequest = {
  permissions: ["bookmarks", "history"],
  origins: ["https://developer.mozilla.org/"],
};

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);

Beispielerweiterungen

Hinweis: Diese API basiert auf der chrome.permissions-API von Chromium.