使用flutter插件:网页视图_flutter
从JS向webview_flutter发送数据的所有示例都具有类似的语法:
网页:
<script>
toFlutter.postMessage('{"name":"Hello World"}');
</script>
Flutter:
javascriptChannels: {
JavascriptChannel(
name: 'toFlutter',
onMessageReceived: (message) async {
print('Javascript: "${message.message}"');
},
),
},
这工作,除了...现在网页给我一个JS错误,如果在一个网页浏览器中查看。(阻止其他JS运行)
javascriptChannel的正确(javascript)语法如下所示:
<script>
var toFlutter = new MessageChannel();
toFlutter.port1.postMessage('{"name":"Hello World"}');
</script>
这在web浏览器中是有效的,但是现在webview_flutter当然不高兴了。
显然有办法解决这个问题,我只是问:我是否遗漏了文档中的某些内容?是否有办法在webview_flutter中同时指定通道名称和端口?
1条答案
按热度按时间jw5wzhpr1#
这篇文章应该是有帮助的:
https://medium.com/flutter-community/flutter-webview-javascript-communication-inappwebview-5-403088610949
简而言之:它展示了3种与JS代码通信的方法。其中一种使用消息通道,就像iFrames一样。
这样你就可以重用几乎相同的结构,形成你的html目标dart代码。