在flO平台方法通道上发送布尔值无法在iO上正常工作

时间:2019-04-18 15:04:37

标签: dart flutter

我在Flutter应用程序中添加了一些iO和Android本机代码。本地调用的函数返回一个布尔值,如下:

Future<bool> get isOn => _channel.invokeMethod('isOn').then<bool>((d) => d);

在Android上,一切正常。在通道的方法调用处理程序中,我返回一个布尔值:

...
case "isAvailable":
{
  result.success(myFuncThatReturnsTrueOrFalse());
  break;
}
...

在iO上,我有一个类似的处理程序,它始终返回true:

if ([@"isOn" isEqualToString:call.method]) {
  result(@(TRUE));
}

但是当我在iO上运行dart isOn函数时,我得到了关于布尔值和整数值的对话的错误,如下所示:

type 'int' is not a subtype of type 'FutureOr<bool>'

我检查了多个插件,它们都以相同的方式执行bool的工作。我在某处缺少什么吗?

我正在运行最新的稳定flutter版本(1.2.1),最新的XCode(10.2.1)和最新的Android Studio(3.4)。

1 个答案:

答案 0 :(得分:0)

将@(TRUE)更改为@(YES)即可。