🍶

【Flutter】 WebViewで特定のURLアクセス時や読み込み中に任意の処理をする

1 min read

WebViewで特定のURLアクセス時や読み込み中に任意の処理をする

使用パッケージ

使い方

onPageStarted, onProgress, onPageFinishedの内部に処理を記述する。

return WebView(
  initialUrl: 'https://example.com',
  onPageStarted: (String url) {
    // 読み込み開始時の処理
  },
  onProgress: (int progress) {
    // 読み込み状況が100段階で表現される
    // 1段階ずつ呼ばれるわけではないので注意 (例. 10, 38, 66, 100)
  },
  onPageFinished: (String url) {
    // 完了後の処理
    // if(url == 'https://example.com/completed') Navigator.pop(context);
  },
)

注意事項

公式リファレンスに

When onPageFinished is invoked on Android, the page being rendered may not be updated yet.

とあるように、AndroidでonPageFinishedが呼び出された場合、レンダリング中のページがまだ更新されていない可能性があるので注意する。

参考文献