icloud_kv_storage
一个基于 iCloud 同步多个 iOS & Mac 设备的 Key Value Storage Flutter 插件。
用法
注意:建议对 iOS 设备使用真机测试,因为 iOS 模拟器可能无法实时同步。Mac 设备可以直接编译测试。只需在不同的 Apple 设备上登录同一个 iCloud 账户即可同步轻量级的 Key Value 数据。
- 第一步
为您的 iOS 或 Mac 项目启用 iCloud Key Value 服务。
- 然后尽情享用吧。
示例代码。
import 'package:icloud_kv_storage/icloud_kv_storage.dart';
var iCloudStorage = CKKVStorage();
更新一个键
void _incrementCounter() {
setState(() {
_counter++;
iCloudStorage.writeString(key: key, value: _counter.toString());
});
}
读取一个键
iCloudStorage.getString('k_storage_count').then((value) {
if (value != null) {
setState(() {
_counter = int.parse(value);
});
}
});
删除一个键
void _clearCounter() {
setState(() {
_counter = 0;
iCloudStorage.delete(key);
});
}
实时回调其他设备上的键值更新
iCloudStorage.onCloudKitKVUpdateCallBack(
onCallBack: (kvMap) {
print('receive icloud_key_update map $kvMap');
//if receive remove key will rec {flutter.k_storage_count: null}
//if receive update key will rec {flutter.k_storage_count: 1}
//because have prefix flutter. so need use my method to get real key.
var key = iCloudStorage.getRealKey('k_storage_count');
if (kvMap.containsKey(key)) {
String? value = kvMap[key];
setState(() {
if (value != null) {
_counter =
int.parse(kvMap[iCloudStorage.getRealKey('k_storage_count')]);
} else {
_counter = 0;
}
});
}
},
);
发布日志
0.0.1
基于 Apple CloudKit,可以在不同的 Apple 设备(如 iOS 和 Mac 设备)之间同步轻量级键值存储数据。目前,只能同步 String 数据。
Future
目前仅支持 String 数据,未来将添加 int 和 double 等基本数据类型。

