fluttercommunity / fluttercommunity/flutter_webview_plugin

Negative http error codes from onHttpError.listen when website is unreachable

Offen
#786 4 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Java
Sterne
1.5k
Forks
938
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Is there a documentation about the negative http error codes from `onHttpError.listen`?
The goal is to lead to a custom error page on timeouts.

I simulated a non responding server by loading `https://www.google.com:81` which will never finish.
In this case, the listener receives http error code -2 on Android, and -1001 on iOS.

Can I rely on those codes to not change?

**Demo code:**
```
Widget build(BuildContext context) {
final plugin = FlutterWebviewPlugin();
plugin.onHttpError.listen((httpError) {
print('error code: ${httpError.code}, url: ${httpError.url}');
if ((Platform.isAndroid && httpError.code == '-2') ||
(Platform.isIOS && httpError.code == '-1001')) {
// navigate to custom error screen
// not sure if error codes are stable/reliable
}
});
plugin.onStateChanged.listen((state) {
print('state changed: type: ${state.type}, url: ${state.url}');
});

return WebviewScaffold(
initialChild: Center(
child: CircularProgressIndicator(),
),
url: 'https://www.google.com:81',
hidden: true,
);
}
```

**Console outputs and behaviour differ depending on the platform:**

Android:
```
state changed: type: WebViewState.startLoad, url: https://www.google.com:81/
error code: -2, url: https://www.google.com:81/
state changed: type: WebViewState.finishLoad, url: https://www.google.com:81/
```

Android finishes with a website telling about the timeout:
Screenshot 2020-07-22 at 18 32 56

iOS:
```
state changed: type: WebViewState.shouldStart, url: https://www.google.com:81/
state changed: type: WebViewState.startLoad, url: https://www.google.com:81/
error code: -1001, url: ?, runtime type: WebViewHttpError
```
iOS never finishes loading and shows the progress indicator forever.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.