我知道为时已晚,但它可能对其他人有所帮助。
这是一个从 Javascript 代码到 Flutter 的通信示例。
在 Flutter 中构建您的 WebView,如下所示:
WebView(
initialUrl: url,
javascriptMode: JavascriptMode.unrestricted,
javascriptChannels: Set.from([
JavascriptChannel(
name: 'Print',
onMessageReceived: (JavascriptMessage message) {
//This is where you receive message from
//javascript code and handle in Flutter/Dart
//like here, the message is just being printed
//in Run/LogCat window of android studio
print(message.message);
})
]),
onWebViewCreated: (WebViewController w) {
webViewController = w;
},
)
在您的 HTML 文件中:
<script type='text/javascript'>
Print.postMessage('Hello World being called from Javascript code');
</script>
当你运行这段代码时,你应该能够在 android studio 的 LogCat/Run 窗口中看到日志“Hello World being called from Javascript code”
如果您想将 msg 从 dart 发送到 js,那么这里是您的示例:-
flutterWebviewPlugin.evalJavascript('var x = document.getElementsByClassName("layout__area--top"); x[0].style.opacity =0;');