Thanks to visit codestin.com
Credit goes to developer.mozilla.org

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

BeforeInstallPromptEvent

利用可能性は限定的

この機能はベースラインではありません。最も広く使用されているブラウザーの一部で動作しません。

Want more support for this feature? Tell us why.

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

非標準: この機能は標準化されていません。非標準の機能はブラウザーの対応が限られ、将来的に変更または削除される可能性があるため、本番環境での使用は推奨されません。ただし、標準の選択肢が存在しない特定のケースでは、有効な代替手段となる場合があります。

BeforeInstallPromptEventbeforeinstallprompt イベントのインターフェイスであり、モバイル端末でユーザーにウェブサイトのホーム画面への「インストール」を促す前に、Window オブジェクトに対して発生します。

このインターフェイスは、Event インターフェイスを継承しています。

Event BeforeInstallPromptEvent

コンストラクター

BeforeInstallPromptEvent()

新しい BeforeInstallPromptEvent オブジェクトを生成します。

インスタンスプロパティ

親である Event から継承したプロパティがあります。

BeforeInstallPromptEvent.platforms 読取専用

イベントが配信されたプラットフォームを含む文字列の配列を返します。これは、例えば "web" や "play" といったバージョンの選択肢をユーザーに表示したいユーザーエージェント向けに提供されており、これによりユーザーはウェブ版と Android 版の間で選択できるようになります。

BeforeInstallPromptEvent.userChoice 読取専用

アプリのインストールを促された際、ユーザーが選択した内容を説明したオブジェクトに解決される Promise を返します。

インスタンスメソッド

BeforeInstallPromptEvent.prompt()

ユーザーにアプリのインストールを希望するかどうかを尋ねるプロンプトを表示させます。このメソッドは、アプリのインストールを促された際のユーザーの選択内容を説明したオブジェクトに解決される Promise を返します。

次の例では、アプリが独自のインストールボタンを提供しており、その id"install" となっています。最初は、このボタンは非表示になっています。

html
<button id="install" hidden>インストール</button>

beforeinstallprompt ハンドラーは次のように動作します。

  • このイベントを取り消します。これにより、一部のプラットフォームにおいて、ブラウザーが自身のインストール UI を表示させるのを防ぎます
  • BeforeInstallPromptEvent オブジェクトを変数に代入し、後で使用できるようにします
  • アプリのインストールボタンを表示します。
js
let installPrompt = null;
const installButton = document.querySelector("#install");

window.addEventListener("beforeinstallprompt", (event) => {
  event.preventDefault();
  installPrompt = event;
  installButton.removeAttribute("hidden");
});

アプリのインストールボタンをクリックすると、次のように処理します。

  • 保存されたイベントオブジェクトの prompt() メソッドを呼び出し、インストールプロンプトを開始します。
  • installPrompt 変数をクリアし、自身を再び非表示にすることで、状態をリセットします。
js
installButton.addEventListener("click", async () => {
  if (!installPrompt) {
    return;
  }
  const result = await installPrompt.prompt();
  console.log(`インストールプロンプト: ${result.outcome}`);
  installPrompt = null;
  installButton.setAttribute("hidden", "");
});

ブラウザーの互換性

関連情報