【问题标题】:How to send data back from iOS to Flutter?如何将数据从 iOS 发送回 Flutter?
【发布时间】:2019-07-09 12:47:58
【问题描述】:

我正在尝试让 iOS 将数据发送回 Flutter。更具体地说,控制中心媒体控制。我正在开发一个音乐应用程序,我可以获取从 Flutter 发送到 iOS 的数据,从而允许它显示在媒体控件中。

但是,如果我要控制下一个播放暂停,我将如何让 iOS 在其自己的频道上发回数据?基本上让 Flutter 监听 iOS 发送数据。

【问题讨论】:

    标签: flutter flutter-layout flutter-dependencies


    【解决方案1】:

    假设您在您的插件(称为 XXX)中使用 Swift,您将拥有一个 SwiftXXXPlugin 类和一个静态 register 方法。移动channel 成为静态变量,而不是register 的局部变量。然后为你的 iOS 创建一些静态方法到 Dart 方法并像这样调用invokeMethod

    channel.invokeMethod("someMethod", arguments: "someValue")
    

    argumentsAny,可以是通道知道如何编码的任何东西,例如字节数组、字符串、int、double 等。它还可以编码基本对象的列表和映射。

    在 Dart 端,你有 XXX.dart。添加一个名为setHandler 的静态方法,并实现这些方法的实现。在使用频道之前,您需要拨打setHandler 一次。

      static setHandler() {
        _channel.setMethodCallHandler(methodCallHandler);
      }
    
      static Future<dynamic> methodCallHandler(MethodCall methodCall) async {
        switch (methodCall.method) {
          case 'someMethod':
            print(methodCall.arguments); // prints the argument - "someValue"
            return null; // could return a value here
    
          default:
            throw PlatformException(code: 'notimpl', message: 'not implemented');
        }
      }
    

    【讨论】:

    • 甜!!!这就是我想要的,可惜 Flutter 团队没有为此提供示例。非常感谢???
    • 你的意思是,除了 Flutter 团队在flutter.io/docs/development/platform-integration/… 提供的那个?
    • 是的,那位只谈论通过 Flutter 从平台获取数据。它确实解释了如何通过 Platform 向 Flutter 发送数据。像媒体通知暂停歌曲,控制中心暂停按钮暂停歌曲。两者都是平台特定的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 2022-11-09
    • 1970-01-01
    • 2021-11-08
    • 2011-09-09
    相关资源
    最近更新 更多