flutter_plugin_webview
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 ...
Getting Started
For help getting started with Flutter, view our online documentation.
How it works
Launch WebView Fullscreen with Flutter navigation
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
Listen to state change
Breaking changes version >= 0.0.12
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
});
Close launched WebView
webviewPlugin.close();
Webview inside custom Rectangle
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()
Webview Functions
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);