【Flutter Web】serviceWorkerVersionとFlutterLoader.loadEntrypointを修正

はじめに

この記事では、Flutter Webアプリケーションの開発中に警告メッセージが表示されましたので、それに対処する方法について説明します。

発生した警告

Flutter Webの実行時に以下の二つの警告が発生しました:

Warning: In index.html:37: Local variable for "serviceWorkerVersion" is deprecated. Use "{{flutter_service_worker_version}}" template token instead.
Warning: In index.html:46: "FlutterLoader.loadEntrypoint" is deprecated. Use "FlutterLoader.load" instead.

修正点

web/index.htmlの以下を修正したら、警告が消えました。

1. serviceWorkerVersionの修正

修正前
<script>
  const serviceWorkerVersion = null;
</script>
修正後
<script>
  {{flutter_service_worker_version}}
</script>

2. FlutterLoader.loadEntrypointの修正

修正前
<script>
  window.addEventListener('load', function(ev) {
    _flutter.loader.loadEntrypoint({
      serviceWorker: {
        serviceWorkerVersion: serviceWorkerVersion,
      },
      onEntrypointLoaded: function(engineInitializer) {
        engineInitializer.initializeEngine().then(function(appRunner) {
          appRunner.runApp();
        });
      }
    });
  });
</script>
修正後
<script src="flutter_bootstrap.js" async></script>

参考

まとめ

本記事で説明した修正を行うことで、警告を解消し、新しいFlutter開発慣行に従うことができます。