h5是vue写的,flutter怎么调用Vue的方法

来源:13-14 本章总结

慕UI5531744

2天前

如题

写回答

1回答

CrazyCodeBoy

1天前

说下思路:
1.Flutter 端用 webview_flutter 插件加载 Vue 写的 H5。
2.用 JavascriptChannel 在 Flutter ↔ Vue 之间通信。
Flutter 端示例:

import 'package:webview_flutter/webview_flutter.dart';

WebViewController? _controller;

@override
Widget build(BuildContext context) {
  return WebView(
    initialUrl: 'https://your-vue-page.com',
    javascriptMode: JavascriptMode.unrestricted,
    javascriptChannels: {
      JavascriptChannel(
        name: 'Flutter',
        onMessageReceived: (message) {
          print("收到 Vue 消息: ${message.message}");
        },
      ),
    },
    onWebViewCreated: (controller) {
      _controller = controller;
    },
  );
}

// Flutter 调用 Vue
void callVueMethod() {
  _controller?.runJavascript('vueMethodFromFlutter("参数")');
}

Vue 端示例:

// Vue 调用 Flutter
window.Flutter.postMessage("这是从Vue来的消息");

// 被 Flutter 调用的方法
window.vueMethodFromFlutter = function(param) {
  console.log("收到 Flutter 调用: ", param);
}


---
0
0

慕课甄选-Flutter零基础极速入门到进阶实战

全新Flutter从入门到进阶,实战仿携程网App

701 学习 · 330 问题

查看课程