Flutter开发之——Android通信-MethodChannel,大牛整理
在Flutter中,MethodChannel用于与原生平台(iOS或Android)进行通信。以下是一个简单的例子,展示了如何从Flutter发送一个方法调用到Android,并接收一个简单的字符串响应。
首先,在Flutter端定义MethodChannel并发送消息:
import 'package:flutter/services.dart';
class MethodChannelDemo {
static const methodChannel = MethodChannel('com.example.methodchannel');
Future<String> getPlatformVersion() async {
final String version = await methodChannel.invokeMethod('getPlatformVersion');
return version;
}
}
然后,在Android端,在你的Activity或Fragment中,你需要设置一个MethodChannel并处理接收到的方法调用:
import io.flutter.embedding.android.FlutterActivity;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugins.GeneratedPluginRegistrant;
public class MainActivity extends FlutterActivity {
private static final String CHANNEL = "com.example.methodchannel";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GeneratedPluginRegistrant.registerWith(this);
new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
(call, result) -> {
// 响应方法调用
if (call.method.equals("getPlatformVersion")) {
result.success("Android " + android.os.Build.VERSION.RELEASE);
} else {
result.notImplemented();
}
}
);
}
}
在这个例子中,当Flutter调用getPlatformVersion
方法时,Android端的MethodChannel处理器会返回当前Android平台的版本号。这个过程展示了如何在Flutter和Android之间建立单向通信,从Flutter到Android。
评论已关闭