提问人:bellotas 提问时间:6/29/2023 更新时间:6/29/2023 访问量:334
无效参数:“DateTime”的实例
Invalid argument: Instance of 'DateTime'
问:
我正在开发一个 Flutter 插件,我想从我的文件 Native Android 中传递一个参数。dart
DateTime
实现很简单:
飞镖
Future<bool?> getDate(DateTime localTime) async {
return _dateChannel.invokeMethod<bool>('my_method_channel',
{'localTime': localTime});
}
爪哇岛
if (methodCall.method.equals("my_method_channel")) {
Date localTime = methodCall.argument("localTime");
System.out.println(
"TEST | Estimated localTime | " + localTime);
result.success(true);
}
但是我收到以下错误
[错误:flutter/runtime/dart_vm_initializer.cc(41)]未处理的异常: 无效参数: “DateTime” 的实例
请注意,这是我实现的简化。我知道我可以得到原生,但这不是我想要的。localTIme
解释当前情况以及如何解决。
答:
3赞
Healingwave
6/29/2023
#1
平台通道不支持数据类型 Date/Datetime。您应该将参数作为 String 类型传递,然后在 Java 代码中解析它。
https://docs.flutter.dev/platform-integration/platform-channels?tab=type-mappings-java-tab#codec
评论
1赞
Richard Heap
6/29/2023
或者自纪元以来将其转换为 millis。
1赞
bellotas
6/30/2023
事实上。''' _dateChannel.invokeMethod<bool>('my_method_channel', {'localTime': localTime.millisecondsSinceEpoch); ''' 解决了问题
评论