参考文章:
一、基础知识
1、Channel
Flutter定义了三种不同类型的Channel,分别如下:
| Channel类型 | 用途 |
|---|---|
| BasicMessageChannel | 用于传递字符串和半结构化的信息 |
| MethodChannel | 用于传递方法调用(method invocation) |
| EventChannel | 用于数据流(event streams)的通信 |
- MethodChannel传递的数据支持什么类型?
- Dart数据类型与Android,iOS类型的对应关系是怎样的?
这两个问题的答案同样来自官方文档:
| Dart | Android | iOS |
|---|---|---|
| null | null | nil (NSNull when nested) |
| bool | java.lang.Boolean | NSNumber numberWithBool: |
| int | java.lang.Integer | NSNumber numberWithInt: |
| int if 32 bits not enough | java.lang.Long | NSNumber numberWithLong: |
| double | java.lang.Double | NSNumber numberWithDouble: |
| String | java.lang.String | NSString |
| Uint8List | byte[] | FlutterStandardTypedData typedDataWithBytes: |
| Int32List | int[] | FlutterStandardTypedData typedDataWithInt32: |
| Int64List | long[] | FlutterStandardTypedData typedDataWithInt64: |
| Float64List | double[] | FlutterStandardTypedData typedDataWithFloat64: |
| List | java.util.ArrayList | NSArray |
| Map | java.util.HashMap | NSDictionary |
| Class | Note |
|---|---|
| BinaryCodec | 二进制数据类型,泛型对应 ByteBuffer,传递 byte 数组时使用 |
| JSONMessageCodec | Json消息类型,泛型对应 Object。传递 Json时可使用 |
| StringCodec | 字符串消息类型,泛型对应 String。传递字符串 |
| StandardMessageCodec | 标准消息类型,泛型对应 Object。传递 Map 等的时候可使用此类型 |