PermissionStatus: state プロパティ

Baseline 2022

Newly available

Since September 2022, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

メモ: この機能はウェブワーカー内で利用可能です。

statePermissionStatus インターフェイスの読み取り専用プロパティで、要求された権限の状態を返します。 このプロパティは、'granted'(許可)、'denied'(拒否)、'prompt'(プロンプト)のいずれかを返します。

以下のいずれかです。

'granted'

ユーザー、またはユーザーの代理となるユーザーエージェントが、強力な機能を使用する明示的な権限を付与しました。呼び出し側は、ユーザーエージェントがユーザーの許可を要求することなく、その機能を使用できる可能性があります。

'denied'

ユーザー、またはユーザーの代理となるユーザーエージェントが、この強力な機能にアクセスすることを拒否しています。呼び出し側は、この機能を使用することができません。

'prompt'

ユーザーは、その機能を使用する明示的な許可を与えていません(すなわち、denied と同じです)。かつ、呼び出し側がその機能を使用しようとした場合、ユーザーエージェントは許可するか、その機能へのアクセスを拒否するかをユーザーに尋ねます。

js
navigator.permissions
  .query({ name: "geolocation" })
  .then((permissionStatus) => {
    console.log(`位置情報の権限の状態は ${permissionStatus.state} です。`);
    permissionStatus.onchange = () => {
      console.log(
        `位置情報の権限の状態が ${permissionStatus.state} に変更されました。`,
      );
    };
  });

仕様書

Specification
Permissions
# dom-permissionstatus-state

ブラウザーの互換性

BCD tables only load in the browser