3

プログレッシブ Web アプリケーションのテスト。

機内モードでアプリを起動すると、予期しない起動/スプラッシュ エクスペリエンスが発生します (Android/Chrome)。

ホーム画面からの起動エクスペリエンス

白い画面が表示され、アプリが正常に起動する前に「オフラインの恐竜」の短いフラッシュが表示され、すべて問題ありません。特にラップトップで Chrome Devtools を使用してテストした後では、起動はほぼ瞬時に行われます。

この時間が費やされている場所 (特に「サービス ワーカーが実行されていない」場合) をデバッグするのは少し難しいため、基本的な知識があると役立ちます。

ブラウザー エクスペリエンスからの起動

アプリが正常に起動する前に、"オフラインの恐竜" が一瞬だけ表示されます。はるかに速く起動します。

質問

  • Android/Chrome での予想される起動時間とエクスペリエンスは?
  • 上記の経験は現在の状態 (2015 年 11 月) にすぎませんか?
  • Chrome の起動 (スプラッシュ) エクスペリエンスを指定する方法はありますか? (スプラッシュ用のアプリ マニフェストの背景色と 144x144 アイコンを認識していますが、Opera のみ)

私にとって初めての PWA なので、これに関する情報は役に立ちます。

私のプラットフォーム: Samsung GS 5、Android 5.0、Chrome 46.0.2490.76

4

2 に答える 2

0

オフラインディノフラッシュについて:

sw-toolboxを使用して非同期作業を実行し、ワーカーの起動時にルート ハンドラーをセットアップしていました。これにより、アプリケーションがオフラインで起動しているときに、オフラインのディノ フラッシュが発生しました。

これを回避するには、非同期ルート ハンドラーのセットアップが完了するまで待機する sw-toolbox の既定のハンドラーを設定します。

var toolbox = require('sw-toolbox');

var setupPromise = someAsyncHandlerSetup()
.then(function () {
  // make default handler temporary, allows other fetch handlers (like sw-precache, for example)
  toolbox.router.default = null;
});

// until the async handler setup is done, provide a default handler
// to avoid an offline-dino flash when starting up while offline. 
toolbox.router.default = function defaultHandler (request) {
  return setupPromise.then(function () {
    var handler = toolbox.router.match(request);
    if (handler) {
      return handler(request);
    }
    throw new Error('default handler could not handle ' + request.url);
  });
};
于 2016-04-01T21:05:14.820 に答える