我想在Ionic4应用程序和本机今日小部件之间共享数据。为此,我正在使用这个插件
在Cordova插件的文档中,您可以找到"iOS特定的功能",其中提到了NativeStorage.initWithSuiteName。但这在 Ionic 插件中是缺失的。
所以我像这样更改了我的代码:
if (this.platform.is('ios')) {
window['plugins'].NativeStorage.initWithSuiteName('group.com.test.test');
}
和
this.nativeStorage.setItem(key, val);
但是当我想在今天的小部件中获取数据时,没有设置键。
let preferences = UserDefaults(suiteName: "group.com.test.test");
if let test = preferences!.string(forKey: "test") {
print(test);
} else {
print("No");
}
有谁知道如何处理这个问题?感谢您的帮助!
如果在同一应用 ID 中共享数据,请不要使用 initWithSuiteName()
this.nativeStorage.setItem(key, val);
if let test = UserDefaults.standard.string(forKey: "test") as? String {
print(test);
} else {
print("No");
}
如果在应用或扩展之间共享数据,则需要使用应用组https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_application-groups
在setItem()
之前
if (this.platform.is('ios')) {
NativeStorage.initWithSuiteName(APP_GROUP_ID);
}