gpt4 book ai didi

android - Flutter setMethodCallHandler 不调用它的参数

转载 作者:行者123 更新时间:2023-12-05 06:57:30 25 4
gpt4 key购买 nike

我正在尝试从原生 android 打开 flutter 屏幕

所以我尝试使用 MethodChannel 将数据返回给 dart,然后调用将我导航到当前屏幕的方法

但是我的代码不工作

这是我的代码

@Override
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
super.configureFlutterEngine(flutterEngine);
String channelName = "app_channel";
MethodChannel methodChannel = new MethodChannel(flutterEngine.getDartExecutor(), channelName);

methodChannel.invokeMethod("openCaller", false, new MethodChannel.Result() {
@Override
public void success(@Nullable Object result) {
Log.i("fromInvoke","success" + result.toString());
}

@Override
public void error(String errorCode, @Nullable String errorMessage, @Nullable Object errorDetails) {
Log.i("fromInvoke","failed" + errorMessage);

}

@Override
public void notImplemented() {
Log.i("fromInvoke","not implemented");

}
});
}

  static const platform =
const MethodChannel('app_channel');

@override
void initState() {
super.initState();
platform.setMethodCallHandler(invokedMethods);

}

这是一个全局函数

 Future<dynamic> invokedMethods(MethodCall methodCall) async {
switch (methodCall.method) {
case "openCaller":
print("arrived to open caller");
// Navigator.pushNamed(context, "/ring");

}
}

最佳答案

方法methodChannel.invokeMethod("openCaller", ...)您提供的代码 fragment 似乎没有被触发,它仅设置在 configureFlutterEngine 中.您需要从 Android 调用该方法来调用您在 Flutter 应用程序中配置的功能。检查这个article更详细地介绍了该主题并提供了示例代码。

关于android - Flutter setMethodCallHandler 不调用它的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64876420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com