从 iOS 到 Native 的 Flutter MethodChannel 不工作

Flutter MethodChannel from iOS to Native not working

我有一个 Flutter 项目试图在 Flutter 和 iOS Native 之间建立双向通信。到目前为止,从 FlutteriOS,它都能完美运行,但反过来它是无声的。当我从 iOS 调用方法时,没有任何反应。没有消息,没有错误,什么都没有。

我在 iOS 上创建了 MethodChannel,如下所示:

let channel = FlutterMethodChannel(
    name: "paymentview",
    binaryMessenger: controller.binaryMessenger
)

   channel.setMethodCallHandler({
       (call: FlutterMethodCall, result: FlutterResult) -> Void in
       if (call.method == "initialize") {

       } else if(call.method == "authorize") {

        }
   })

Flutter 方面像这样:

_channel = new MethodChannel('paymentview');
_channel.setMethodCallHandler(methodCallHandler);

Future<dynamic> methodCallHandler(MethodCall methodCall) async {
    switch (methodCall.method) {
      case 'authorized':
        print("authorized");
        return null;
      default:
        throw PlatformException(code: 'Not implemented', message: 'Not implemented');
    }
  }

Flutter 上,我调用了这样的方法:

_channel.invokeMethod('authorize');

这很好用。 iOS 接到电话。但是在 iOS 方面,我调用了这样的方法:

DispatchQueue.main.async {
            self.channel.invokeMethod("authorized", arguments: nil)
        }

Flutter 方面没有任何反应。没有消息,没有错误,什么都没有。我已经尝试了多种变体,包括创建多个通道(每个通道一个)、动态通道 ID 等等,但它在 Flutter 方面是沉默的。有什么想法吗?

编辑:我已经从 iOS 端对此进行了调试,它确实有效。我从我的 Dart 代码中得到 return 值。但是,当我调试 Dart 代码时,没有命中断点。如果我尝试修改 Dart 中的某些状态,什么也不会发生...

Edit2:当 运行 来自 XCode 时,使用 运行ner 项目似乎有效,但当 运行 从 [=47] 中使用 Flutter 项目时似乎无效=]工作室..

如评论中所述,这突然开始工作而没有任何代码更改。我重新启动了我的 mac 几次,刷新了 Android Studio 等。突然它起作用了。