PWA の非常に奇妙な動作に気付きました。Windows では「スタンドアロン」モードで起動できますが、Android デバイスで同じことをしようとすると、「スタンドアロン」の値が無視され、Chrome で URL が開きます (Android 7.0、Chrome-Android v62.x)。 . また、Chrome-Android Beta v63.x でも機能しません (この投稿に関連して、chrome 62.x のバグを参照しています)。マニフェスト バリデーターとライトハウスでマニフェスト ファイルを確認しました。どちらのツールもファイルを検証し、エラーや問題は表示されません。「ホームスクリーンに追加」ダイアログが (最初の起動ごとに) 直接表示され、PWA をホームスクリーンに追加できます。Service-worker は期待どおりに動作し、アプリをオフラインで (Windows と Android で) 実行しても問題はありません。
ノートブックにプロキシを使用して Android デバイスでテストしています (これが関連する場合に備えて)。別の Android デバイスも試しましたが、同じ問題が発生します。
注: さまざまな PWA が期待どおりに機能します。たとえば、2048 は PWA として機能します。
これが私の manifest.json です:
{
"icons": [
{
"src": "assets/android-chrome-36x36.png",
"sizes": "36x36",
"type": "image\/png"
},
{
"src": "assets/android-chrome-48x48.png",
"sizes": "48x48",
"type": "image\/png"
},
{
"src": "assets/android-chrome-72x72.png",
"sizes": "72x72",
"type": "image\/png"
},
{
"src": "assets/android-chrome-96x96.png",
"sizes": "96x96",
"type": "image\/png"
},
{
"src": "assets/android-chrome-144x144.png",
"sizes": "144x144",
"type": "image\/png"
},
{
"src": "assets/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image\/png"
},
{
"src": "assets/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image\/png"
}
],
"short_name": "My short name",
"name": "My not sooooo short name",
"theme_color": "#337ab7",
"start_url": "/index.html",
"background_color": "#ffffff",
"display": "standalone",
"orientation": "portrait"
}
マニフェスト ファイルは、私の index.html のヘッダーにリンクされており、モバイルが追加されています。
<meta name="mobile-web-app-capable" content="yes">
<meta name="theme-color" content="#337ab7">
<link rel="manifest" href="manifest.json">
Web アプリは、誰かが同様の問題に直面した場合に備えて、angular2 (angular-seeds) でビルドされています..
お時間とコメントありがとうございます!
更新 1:
モバイル デバイスから PWA にアクセスするためにプロキシを使用せず、代わりにローカル ネットワークから開いているポートを介してアクセスする場合、スタンドアロン機能は問題なく動作します (ただし、サービス ワーカーの登録は失敗します..)。この「バグ」がプロキシで発生する理由はまだわかりません。
更新 2:
私の本当の質問は、なぜこれが起こっているのですか?もう 1 つは、見つけたすべてのソリューションに妥協点がある場合、実際のモバイル デバイスで PWA の動作とフィーリングを実際にテストするにはどうすればよいかということです。開発環境について・・・
Android デバイスでの私のテスト方法:
- ノートブックのポートを開き、ノートブックの IP アドレスを介してローカル ネットワーク内にアクセスします (サービス ワーカーは、https ではなく、localhost がないため機能していませんが、pwa はスタンドアロン モードで起動します -.-)
- Android デバイスのプロキシをノートブックの IP に設定します (Service Worker は機能しますが、スタンドアロン モードは失敗します)