📝

Flutter Web PWAの新しいバージョンがあるかどうかの確認仕方

2021/08/24に公開

dart:htmlonUpdateFound をlistenして新しいService Workerのバージョンがインストールされているかどうかで判断する。

  Future<void> _registerServiceWorker() async {
    _serviceWorkerRegistration =
        await html.window.navigator.serviceWorker?.getRegistration();

    _serviceWorkerRegistration?.addEventListener(_updateFoundEvent, (event) {
      _serviceWorkerRegistration?.installing?.addEventListener(
        _stateChangeEvent,
        (event) {
          if (_serviceWorkerRegistration?.waiting != null) {
	    // 新しいバージョンがインストールされて待機状態になっている
            widget.onReady();
          }
        },
      );
    });
  }

Packageを作ったのでよかったら見てみてください。
https://pub.dev/packages/pwa_update_listener

Discussion