サイトにPWAを設定.つまりmanifest.json
を適切に設定すると,Chormeが自動でインストールできることを伝えるスナックバーのようなものを出してくれる.
これは開発者側もPWAになっているかどうか確認するには便利だが実際にユーザにインストールしてもらおうとしたときにユーザに任意にインストールさせれないのは面倒.
GoogleChomrLabs/airhorn
にインストールボタンが実装されていたのでそれを参考に
インストールの部分の処理を作る.
airhorn/app/scripts/main.min.js
にインストール部分の処理があった
from https://github.com/GoogleChromeLabs/airhorn
このコードではボタンであるroot
をクリックしたときにインストール処理を呼び出す.
重要な点としてインストール処理はbeforeinstallprompt
で受け取っており,こちら側で処理を作る必要がない(できない)点である.
このため,インストールを実行させたいときはbeforeinstallprompt
時に発行される promptEven
を保持しておき, promptEvent.prompt()
を呼び出せばインストール処理のダイアログを任意で表示させることができる
インストールの処理の実行をのためのダイアログ表示のコード
const install = function(e) { if(promptEvent) { promptEvent.prompt(); } };
promptEvent.prompt();
後にpromptEvent.userChoise()
でPromise
でユーザのダイアログ後に選択結果が出力される.
また既にインストール済みの場合,appinstalled
イベントが呼ばれるため,インストール済みの場合はボタンを非表示にできる.