我需要从webView接收flutter中web_view中的数据。怎么可能呢?如何管理flutter的InAppWebView中的JavaScript?
首先你应该在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);
}