在flutter平台方法通道中发送布尔值在iOs上无法正常工作

问题描述 投票:0回答:1

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

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

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

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

在iOs上我有一个类似的处理程序,它总是返回true:

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

但是当我在iOs上运行dart isOn函数时,我得到一个关于bool和int值的对话的错误:

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

我检查了多个插件,他们都以同样的方式做了bool的东西。我在某处遗漏了什么吗?

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

dart flutter
1个回答
0
投票

将@(TRUE)改为@(YES)就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.