如何处理 InAppWebView flutter 中的 JavaScript 以及如何将数据从 webView 传递到 flutter?

问题描述 投票:0回答:1

我需要从webView接收flutter中web_view中的数据。怎么可能呢?如何管理flutter的InAppWebView中的JavaScript?

flutter flutter-dependencies
1个回答
0
投票

首先你应该在onLoadStart中监听js回调。

InAppWebViewController? webViewController;


InAppWebView(
      onWebViewCreated: (controller) {
        webViewController = controller;
      },
      onLoadStart: (controller, url) {
        controller.addJavaScriptHandler(
            handlerName: "FlutterCallback",
            callback: (args) {
              String jsonFromWeb = args[0];
              print(jsonFromWeb);
            });
      },
      initialSettings: InAppWebViewSettings(
        javaScriptEnabled: true,
        mediaPlaybackRequiresUserGesture: false,
        cacheEnabled: true,
        allowsInlineMediaPlayback: true,
   ),
);

在网站端您发送这样的数据,

var isAppReady = false;

window.addEventListener("flutterInAppWebViewPlatformReady", function (event) {
    isAppReady = true;
});

if (isAppReady) {
    window.flutter_inappwebview.callHandler('FlutterCallback', jsonDataToFlutter);
}
© www.soinside.com 2019 - 2024. All rights reserved.