setAdaptiveDecoderGetBackupURLCallback static method

Future<void> setAdaptiveDecoderGetBackupURLCallback(
  1. String getBackupUrlCallback(
    1. Object,
    2. Object,
    3. Object
    )
)

设置取BackupUrl回调。

Implementation

static Future<void> setAdaptiveDecoderGetBackupURLCallback(
    String Function(Object, Object, Object) getBackupUrlCallback) async {
  const BasicMessageChannel<String> _basicMessageChannel =
      BasicMessageChannel<String>(
    "getBackupUrlCallback",
    StringCodec(),
  );
  // 注册调用 Flutter 端的 callback,并发送至 Native 端
  _basicMessageChannel.setMessageHandler((message) async {
    if (message != null) {
      Map<String, dynamic> parsedArguments = jsonDecode(message);
      Object oriBizType = parsedArguments["param1"];
      Object oriCodecType = parsedArguments["param2"];
      Object oriURL = parsedArguments["param3"];

      String result = getBackupUrlCallback(oriBizType, oriCodecType, oriURL);

      // 返回结果给 Native
      return result;
    }
    return "";
  });

  try {
    await methodChannel
        .invokeMethod('setAdaptiveDecoderGetBackupURLCallback');
  } on PlatformException catch (e) {
    print("Failed to register callback: '${e.message}'.");
  }
}