flutter_plugin_webview

WebView flutter plugin


License
Apache-2.0

Documentation

pub package

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);