Как использовать 'initWithSuiteName' из плагина Cordova в Ionic4 - PullRequest
0 голосов
/ 12 апреля 2019

Я хочу обмениваться данными между приложением 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");
        }

Кто-нибудь знает, как с этим справиться?Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 22 мая 2019

Если данные совместно используются в одном и том же идентификаторе приложения, не используйте 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);
}
...