我有一个 Flutter 项目,它需要一些需要在原生 Android Activity 或 iOS ViewController 中实现的某些功能。有没有办法导航到android Activity并将数据传递给它,并在Flutter中从中检索数据?
如果不可能,是否可以将来自 Android 的 Activity 或 fragment 以及来自 iOS 的 ViewController 显示为 Flutter 中的小部件?
最佳答案
不确定这是否是最好的方法,我只为 Android 创建了它,但这就是我所做的。
简单的 Flutter 方法 channel 调用原生:
static const platform = const MethodChannel(MY_CHANNEL);
string result await platform.invokeMethod("mycall");
从您的 mainActivity 中的原生 Android 部分://Class attribute
private Result myresult;
//Method chanel
new MethodChannel(getFlutterView(), MY_CHANNEL).setMethodCallHandler(
(call, result) -> {
// Note: this method is invoked on the main thread.
if (call.method.equals("mycall")) {
myresult = result; //Store the flutter result
Intent intent1 = new Intent(MyClass.class);//Start your special native stuff
startActivityForResult(intent1, RQ_CODE);
} else {
result.notImplemented();
}
});
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Check which request we're responding to
if (requestCode == RQ_CODE) {
myresult.success("this will be your result"); //Probably do something with the data instead of a static string.
}
}
基本上可以为 iOS 做同样的事情
关于android - 从 Flutter 打开 Android Activity 和 iOS ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63672894/