主要是flutter内嵌H5页面,之后就是两者之间的交互
flutter:webview_flutter 4.2.2
H5: uniapp
1、flutter向H5传参
- //在flutter 中的web页面,可在onPageFinished中向H5进行传参
-
- onPageFinished: (String url) async {
- WebViewController.runJavaScript("window.postMessage({ type: 'sendDataToH5', data: 'Hello H5!' })");
- },
-
-
- //H5端接收参数,可在mounted中声明使用
-
- window.addEventListener('message', (event) => {
- console.log('Received data from Flutter:',JSON.stringify(event.data));
-
- });
2、H5向flutter传参
- //在flutter 的web页面,创建一个新的JS交互通道即可接受H5传递的参数
-
- @override
- void initState() {
- super.initState();
- ..addJavaScriptChannel(
- 'Toaster',
- onMessageReceived: (JavaScriptMessage message) {
- ScaffoldMessenger.of(context).showSnackBar(
- SnackBar(content: Text(message.message)),
- );
- /可对H5传递的数据进行操作
- },
- )
- }
-
-
-
-
- //H5向flutter传递参数,在需要传递的位置增加此方法即可
-
- Toaster.postMessage('Hello Flutter!');