fluttercommunity / fluttercommunity/flutter_webview_plugin

Back button functionality stops working after using stopLoading()

オープン
#526 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
bug
主要言語
Java
スター
1.5k
フォーク
938
PR マージ指標
30日以内にマージされた PR はありません

説明

## System info

Issue occurs on: Android
Plugin version: ^0.3.7
Flutter doctor output:

```
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.7.8+hotfix.4, on Microsoft Windows [Version 10.0.17134.885], locale lt-LT)

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[√] Android Studio (version 3.4)
[!] VS Code, 64-bit edition (version 1.24.1)
X Flutter extension not installed; install from
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[√] Connected device (1 available)

! Doctor found issues in 1 category.
```

## Steps to Reproduce

I have simple webview app, that listens onStateChanged and tries to prevent url from loading:

```
void initOnStateChangedListener() {
flutterWebviewPlugin.onStateChanged.listen((onData) {
if (shouldStopThisUrlFromLoading(onData.url)) {
flutterWebviewPlugin.stopLoading();
}
});
}
```

After I stop url from loading back button functionality stops working and everytime I press it I get same logout output:
onUrlChanged: RealCaseWebsiteUrl!!
onStateChanged: RealCaseWebsiteUrl!! (WebViewState.finishLoad)
onUrlChanged:RealCaseWebsiteUrl!
onStateChanged: RealCaseWebsiteUrl! (WebViewState.finishLoad)

## Logs

[√] Flutter (Channel stable, v1.7.8+hotfix.4, on Microsoft Windows [Version 10.0.17134.885], locale lt-LT)
• Flutter version 1.7.8+hotfix.4 at C:\flutter
• Framework revision 20e59316b8 (4 weeks ago), 2019-07-18 20:04:33 -0700
• Engine revision fee001c93f
• Dart version 2.4.0

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at C:\Users\saulius.nevys\AppData\Local\Android\sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
• All Android licenses accepted.

[√] Android Studio (version 3.4)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 38.2.1
• Dart plugin version 183.6270
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[!] VS Code, 64-bit edition (version 1.24.1)
• VS Code at C:\Program Files\Microsoft VS Code
X Flutter extension not installed; install from
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[√] Connected device (1 available)
• EVA L19 • XVV7N16607006554 • android-arm64 • Android 7.0 (API 24)

! Doctor found issues in 1 category.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

issue の onStateChanged listener と stopLoading() 呼び出しを使って Android の動作を再現し、続いて Android における stopLoading の実装と WebView の状態コールバックを追跡します。読み込みを停止した後のナビゲーション履歴と戻るボタンの処理がどのように動作するかを確認します。選択した URL の読み込みを停止しても、戻るボタンが同じページを繰り返し報告しなくなれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
android, flutter, java
領域
mobile-dev
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
43/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。