フラッター プラグインの操作: webview_flutter
JS から webview_flutter にデータを送信する例はすべて、構文が似ています。
ウェブページ:
<script>
toFlutter.postMessage('{"name":"Hello World"}');
</script>
フラッター:
javascriptChannels: {
JavascriptChannel(
name: 'toFlutter',
onMessageReceived: (message) async {
print('Javascript: "${message.message}"');
},
),
},
それは機能しますが、例外は... Webブラウザーで表示すると、そのWebページでJSエラーが発生します。(他のJSが実行されないようにする)
javascriptChannel の正しい (javascript) 構文は次のようになります。
<script>
var toFlutter = new MessageChannel();
toFlutter.port1.postMessage('{"name":"Hello World"}');
</script>
これは webbrowser 内で機能しますが、もちろん今 webview_flutter は満足していません。
明らかに、これを回避する方法があります。私はただ尋ねたいのです: ドキュメントに何か見落としがありましたか? webview_flutter でチャネル名とポートの両方を指定する方法はありますか?