Flutter开发之——Android通信-BasicMessageChannel
import 'package:flutter/services.dart';
// 创建一个BasicMessageChannel,用于与Android端通信
final BasicMessageChannel<String> platformChannel =
const BasicMessageChannel<String>('com.example.plugin/basic', StringCodec());
// 向Android发送消息的函数
Future<void> sendMessageToPlatform(String message) async {
try {
// 发送消息,并接收回复
final String reply = await platformChannel.send(message);
print('收到来自Android的回复: $reply');
} catch (e) {
print('发送消息到Android失败: $e');
}
}
// 在Android端,您需要创建一个Plugin类来处理消息通信
// 假设您的Plugin类名为BasicMessageChannelPlugin
// 在Android的MainActivity或其他处理通信的类中,您需要这样初始化和处理消息:
// Kotlin 示例代码
class BasicMessageChannelPlugin : MethodChannel.MethodCallHandler {
companion object {
const val CHANNEL = "com.example.plugin/basic"
}
override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) {
when (call.method) {
"getPlatformVersion" -> result.success("Android ${android.os.Build.VERSION.RELEASE}")
else -> result.notImplemented()
}
}
}
// 在MainActivity中注册Plugin
MethodChannel(flutterView, BasicMessageChannelPlugin.CHANNEL).setMethodCallHandler(BasicMessageChannelPlugin())
在这个示例中,我们创建了一个BasicMessageChannel
并定义了一个通信的channel名称为com.example.plugin/basic
。我们还定义了一个sendMessageToPlatform
函数,用于向Android发送消息。在Android端,我们需要创建一个实现了MethodChannel.MethodCallHandler
的Plugin类,并在MainActivity中注册。当Flutter发送消息到Android时,Android端的Plugin类会处理这个消息,并可以返回结果。
评论已关闭