hisaichi5518 / native_webview

A Flutter plugin that allows you to add an inline WebView.
https://pub.dev/packages/native_webview
Other
51 stars 18 forks source link

shouldOverrideUrlLoadingを実装するとロードがキャンセルされる場合がある #113

Closed YojiroMotoba closed 1 year ago

YojiroMotoba commented 1 year ago

https://developer.android.com/reference/android/webkit/WebViewClient#shouldOverrideUrlLoading(android.webkit.WebView,%20android.webkit.WebResourceRequest)

Note: Do not call WebView#loadUrl(String) with the request's URL and then return true. This unnecessarily cancels the current load and starts a new load with the same URL. The correct way to continue loading a given URL is to simply return false, without calling WebView#loadUrl(String).

とあるので、これが関係しているのかな?と考えているのですが、如何でしょうか?

試しにAndroidのネイティブアプリを作成し、shouldOverrideUrlLoadingreturn false するだけにしてみたところ、ロードがキャンセルされていたところが、正常に読み込まれました。

試しのアプリで以下の実装の場合、ロードがキャンセルされていました。 (returnの値はtrue / falseいずれを固定としても同様)

webView.loadUrl(request?.url.toString(), request?.requestHeaders ?: emptyMap())
return super.shouldOverrideUrlLoading(view, request);

まだ不確かな状態でのissueとなっておりますが、ご検討頂けると助かります