公式の要件は次のとおりです。
アプリが次の条件を満たしている場合、Chromeは自動的にバナーを表示します。
- ウェブアプリマニフェスト ファイルがあります:
- short_name(ホーム画面で使用)
- 名前(バナーで使用)
- 144x144 pngアイコン(アイコン宣言には、MIMEタイプのimage/pngを含める必要があります)
- ロードするstart_url
- サイトに サービスワーカー が登録されています。
- [〜#〜] https [〜#〜] (Service Workerを使用するための要件)で提供されます。
- 少なくとも2回は訪問し、訪問の間隔は少なくとも5分です。
ソース: https://developers.google.com/web/fundamentals/engage-and-retain/app-install-banners/
chromeフラグを有効にすると、テストまたはデバッグの目的でこれらの要件をスキップできます。
chrome:// flags /#bypass-app-banner-engagement-checks
マニフェストファイルを表示するには、次のものが必要です。
以下を含むWebアプリマニフェストファイルが必要です。
サイトにサービスワーカーを登録する必要があります。
サイトがHTTPS経由で提供されていることを確認してください(Service Workerを使用するための要件)。
また、ブラウザサイトエンゲージメントヒューリスティックを満たす必要があります。
これで、このポップアップをキャプチャして、表示するタイミングを決定できます
_window.addEventListener("beforeinstallprompt", ev => {
// Stop Chrome from asking _now_
ev.preventDefault();
// Create your custom "add to home screen" button here if needed.
// Keep in mind that this event may be called multiple times,
// so avoid creating multiple buttons!
myCustomButton.onclick = () => ev.Prompt();
});
_
beforeinstallprompt
event を見てください。これを傍受して保留することができます。
このイベントには .Prompt()
と呼ばれるメソッドがあり、ポップアップを自由に表示させることができます。
サービスワーカーのjsファイルには、この1行があります。
self.addEventListener('fetch', function(event) {});
Mediumに関するこの詳細な記事を見つけました。 Webアプリで「ホーム画面に追加」ポップアップを追加する方法
ステップ1:ルートフォルダーに空のservice-worker.jsファイルを作成します。タグを閉じる前に、HTMLページに以下のコードを挿入します。
<script>
if ('serviceWorker' in navigator) {
console.log("Will the service worker register?");
navigator.serviceWorker.register('service-worker.js')
.then(function(reg){
console.log("Yes, it did.");
}).catch(function(err) {
console.log("No it didn't. This happened:", err)
});
}
</script>
手順2:マニフェストファイルを作成するルートフォルダーにmanifest.jsonファイルを作成します。 HTMLページのヘッダーセクションに以下のタグを追加します。
<link rel="manifest" href="/manifest.json">
手順3:マニフェストファイルに構成を追加するここに構成サンプルがあります。
{
"short_name": "BetaPage",
"name": "BetaPage",
"theme_color": "#4A90E2",
"background_color": "#F7F8F9",
"display": "standalone",
"icons": [
{
"src": "assets/icons/launcher-icon-1x.png",
"type": "image/png",
"sizes": "48x48"
},
{
"src": "assets/icons/launcher-icon-2x.png",
"type": "image/png",
"sizes": "96x96"
},
{
"src": "assets/icons/launcher-icon-3x.png",
"type": "image/png",
"sizes": "144x144"
},
{
"src": "assets/icons/launcher-icon-4x.png",
"type": "image/png",
"sizes": "192x192"
}
],
"start_url": "/?utm_source=launcher"
}
上記のコードでは、独自の値を置き換えることができます。
short_name:この名前は、アプリのアイコンに沿ってホーム画面に表示されます。
icons:画面サイズごとに異なるサイズのアイコンを設定します
theme_color:このカラーコードは、クロムのアドレスの色を変更します。
background_color:スプラッシュ画面の背景色を設定します。
name:アプリケーションのフルネーム。
ここでマニフェストを検証できます https://manifest-validator.appspot.com