在没有FlutterViewController的情况下以本机代码从Flutter获取数据

时间:2019-02-07 15:26:54

标签: flutter flutter-platform-channel

我同时拥有iOS和Android本机项目,现在我正在开发一个Flutter模块,可以从这两个平台访问该模块。我遵循了文档here for adding flutter to existing application

我已经使用方法通道在本机组件和Flutter组件之间进行通信。现在,我想从本机部分的flutter组件中获取一些数据。我正在做的是使用flutter引擎作为二进制Messenger来创建方法通道。

    let flutterEngine = (UIApplication.shared.delegate as! AppDelegate).flutterEngine!
    let channel = FlutterMethodChannel(name: "my.channel.name"
                                       binaryMessenger: flutterEngine)
    channel.invokeMethod("get_value", arguments: nil) { (value) in
        guard let string = value as? String else { return }
        self.valueLabel.text = "value received : " + string
    }

扑朔迷离

class CommunicationChannel {
  static const channel = MethodChannel("my.channel.name");

  void startListening() {
    print(" startListening........... ");

    channel.setMethodCallHandler((MethodCall call) async {
      print("channel method " + call.method);
      switch (call.method) {

        case 'get_value':

          return myValue
        default:
          throw MissingPluginException();
      }
    });
  }
}

main()功能

void main() {
  print(" main() ------------------------. ");

  CommunicationChannel channel = CommunicationChannel();
  channel.startListening();

  runApp(new MyApp());
}

我担心的是,即使这里没有显示任何视图,也要在主函数中创建一个未使用的小部件。
有什么方法可以在不创建任何视图/小部件的情况下从本机代码中的Flutter中读取值?

0 个答案:

没有答案