簡體   English   中英

如何將數據從 iOS 發送回 Flutter?

[英]How to send data back from iOS to Flutter?

我正在嘗試讓 iOS 將數據發送回顫振。 更具體地說是控制中心媒體控制。 我正在開發一個音樂應用程序,我可以獲取從 Flutter 發送到 iOS 的數據,從而允許它顯示在媒體控件中。

但是,如果我要控制下一個播放暫停,我將如何讓 iOS 將數據發送回自己的頻道? 基本上讓 Flutter 監聽 iOS 發送數據。

假設您在插件中使用 Swift(稱為 XXX),您將擁有一個SwiftXXXPlugin類,以及一個靜態register方法。 移動channel成為靜態的,而不是register的局部變量。 然后為你的 iOS 創建一些靜態方法到 Dart 方法並像這樣調用invokeMethod

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

argumentsAny並且可以是通道知道如何編碼的任何東西,例如,字節數組、字符串、整數、雙精度等。它還可以對基本對象的列表和映射進行編碼。

在 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');
    }
  }

實際上不知道如何實現https://api.flutter.dev/flutter/services/MethodChannel/setMethodCallHandler.html

請完整的代碼快照,任何幫助將是可觀的。

 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');
    }
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM