Plugin that allow Flutter to communicate with a native WebView.
Warning: The webview is not integrated in the widget tree, it is a native view on top of the flutter view. you won't be able to use snackbars, dialogs ...
For help getting started with Flutter, view our online documentation.
new MaterialApp(
routes: {
"/": (_) => new WebViewScaffold(
url: "https://www.google.com",
appBar: new AppBar(
title: new Text("Widget webview"),
),
)
},
);
WebViewPlugin.getInstance()
provide a singleton instance linked to one unique webview,
so you can take control of the webview from anywhere in the app
WebViewState = {
WebViewEvent event;
String url;
}
on event closed state = null
WebViewState.event = { WebViewEventLoadStarted | WebViewEventLoadFinished | WebViewEventError }
final webviewPlugin = WebViewPlugin.getInstance();
webviewPlugin.onStateChange.listen((WebViewState state) {
state.event //get the event
});
webviewPlugin.close();
final webviewPlugin = WebViewPlugin.getInstance();
webviewPlugin.luanch(
url,
rect: new Rect.fromLTWH(
0.0,
0.0,
MediaQuery.of(context).size.width,
300.0,
));
Don't forget to dispose webview
flutterWebviewPlugin.dispose()
Future<Boolean> launch(String url, {
Map<String, String> headers,
bool enableJavaScript,
bool clearCache,
bool clearCookies,
bool visible,
Rect rect,
String userAgent,
bool enableZoom,
bool enableLocalStorage,
bool enableScroll,
}
);
Future<String> evalJavascript(String code);
Future<Boolean> resize(Rect rect);
Future<Boolean> stopLoading();
Future<Boolean> refresh();
Future<Boolean> hasBack();
Future<Boolean> back();
Future<Boolean> hasForward();
Future<Boolean> forward();
Future<Boolean> clearCookies();
Future<Boolean> clearCache();
Future<Boolean> reloadUrl(String url);