fluttercommunity / fluttercommunity/flutter_webview_plugin

WebView in WebviewScaffold is always shown if onStateChanged with finishLoad is triggered

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

説明

## System info

Issue occurs on: Android for sure, haven't tested iOS
Plugin version: 0.3.7
Flutter doctor output:

```
[√] Flutter (Channel stable, v1.7.8+hotfix.4, on Microsoft Windows [Version 10.0.17763.678], locale de-AT)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.1)
[√] Android Studio (version 3.4)
[√] Connected device (3 available)

• No issues found!
```

## Steps to Reproduce

1. Create an app that uses the `WebviewScaffold` with the `hidden` parameter to `true`.
2. Once the initial page load is finished (and the web view is shown), hide the web view by calling `FlutterWebviewPlugin.hide()`.
3. Do one of the following:
a. Have a page finish loading because you called `hide()` while it was loading.
b. Call `FlutterWebviewPlugin.reload()`.
4. Now the `FlutterWebviewPlugin` is shown again, although it should stay hidden.

I assume the problem is here: https://github.com/fluttercommunity/flutter_webview_plugin/blob/c3b3fcf47f6275711902ba62623ef66d2e2a51dd/lib/src/webview_scaffold.dart#L105-L111
That event should be handled only once.

## Logs

(No output from `flutter run --verbose`.)

`flutter analyze`:
```
No issues found! (ran in 4.3s)
```

```
[√] Flutter (Channel stable, v1.7.8+hotfix.4, on Microsoft Windows [Version 10.0.17763.678], locale de-AT)
• Flutter version 1.7.8+hotfix.4 at C:\Android\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 29.0.1)
• Android SDK at C:\Android\Sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-29, build-tools 29.0.1
• ANDROID_HOME = C:\Android\Sdk
• 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)

[√] Connected device (1 available)
• Android SDK built for x86 • emulator-5554 • android-x86 • Android 9 (API 28) (emulator)

• No issues found!
```

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

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

調査の方向性

lib/src/webview_scaffold.dart の105-111行付近を読み、finishLoad に対する onStateChanged の処理を追跡してください。hidden=true、hide()、reload を使うか、hide() 中にロードが完了するようにして再現します。そのイベント後も WebView が非表示のままであれば完了です。

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

評価

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

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

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