1.0.3 • Published 1 year ago

web_flutter_connect v1.0.3

Weekly downloads
-
License
ISC
Repository
gitlab
Last release
1 year ago

Web-Flutter connect package

Flutter

  1. Call Flutter
  • await Flutter.call(hanlderName: string, ...params: any[])
  1. Send message to Flutter
  • await Flutter.send(data: any) --> await Flutter.call("onMessage", data)
  • In Flutter code:
            ///Listen message from web
            this.controller?.addJavaScriptHandler(
                handlerName: WebviewModuleKeys.onMessage,
                callback: (List<dynamic> params) async {
                  if (widget.onMessage != null) {
                    widget.onMessage!(params[0]);
                  }
                });
  1. Close webview
  • await Flutter.close() --> await Flutter.call("closeWebview", data)
  1. Notify Web content did load
  • await Flutter.setDidLoad() --> await Flutter.call("onContentDidLoad", data)
  1. Print to Flutter console
  • await Flutter.print(data) --> await Flutter.call("onWebViewPrint", data)
  • In Flutter code:
            ///Listen print from web
            this.controller?.addJavaScriptHandler(
                handlerName: WebviewModuleKeys.onPrint,
                callback: (List<dynamic> params) async {
                  print("*** PRINT FROM WEBVIEW: ***");
                  if (params.isNotEmpty) {
                    print("${params.first}");
                  }
                  print("*** END PRINT FROM WEBVIEW ***");
                });

WebView

  1. WebView.listenFromFlutter: Listen message from Flutter
const subscription = WebView.listenFromFlutter((message: any) => {
    Flutter.print({
        "title": "Receive message from Flutter",
        "data": message,
    });
})
....
//Unsubscribe
subscription.unsubscribe();
  1. WebView.send(message: any)
  • Call in Flutter to send a message to WEB
        try {
                final strMessage = jsonEncode(message);
                this.controller?.evaluateJavascript(source: """
                  window.WebView.send('$strMessage');
                """);
              } catch (e) {
                throw {
                  "error": "Cannot send unencodable message to WebView",
                  "message": message,
                };
              }
1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

1.0.3

1 year ago

0.1.0

1 year ago

0.0.8

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago