Cordova: хранение постоянных данных на Android и iOS - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь постоянно хранить данные на Cordova для Android и iOS.Под постоянным доступом я имею в виду, что даже если пользователь удалит мобильное приложение, оно останется там, поэтому, если они установят его снова, я смогу использовать его повторно.

Я полагаюсь на этот плагин https://github.com/Crypho/cordova-plugin-secure-storage, который использует keychain наiOS и SharedPreferences на Android.

iOS работает должным образом, я могу удалить и установить приложение и увидеть, что мои данные все еще там.

В Android данные удаляются, как только ядеинсталляция.(Android-устройство защищено, что означает, что у него есть экран блокировки, и я могу подтвердить, что оно пишет в SharedPreferences, посмотрев на него с помощью stetho)

Я думал, что оно будет удалено, потому что по умолчанию разрешено резервное копированиеfalse, но даже когда я превратил его в True, он все равно не работает.

<platform name="android">
    <edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
            <application android:allowBackup="true" />
        </edit-config>
</platform>

Буду признателен за вашу помощь заранее ...

(Я добавил тег Android, потому что могут быть некоторые разработчики Android, которые знают причину удаления данных SharedPreference ...)

Ответы [ 3 ]

1 голос
/ 08 мая 2019

Для небольших объемов данных ключ / значение (например, настройки приложения) вы можете использовать cordova-plugin-cloud-settings .

Установить его в свой проект:

cordova plugin add cordova-plugin-cloud-settings --variable ANDROID_BACKUP_SERVICE_KEY="<API_KEY>"

Сохраните некоторые данные, и они будут сохранены в облачном хранилище платформы.

cordova.plugin.cloudsettings.save({
  user: {
    id: 1678,
    name: 'Fred',
    preferences: {
      mute: true,
      locale: 'en_GB'
    }
  }
});

Затем вы можете загрузить данные даже после переустановки приложения:

cordova.plugin.cloudsettings.load(function(settings){
    console.log("Successfully loaded settings");
    console.dir(settings);
});
1 голос
/ 08 мая 2019

при удалении приложения данные SharedPreference также удаляются, поскольку они находятся в положении, принадлежащем этому приложению, чтобы другое приложение могло получать ваши данные, когда вы устанавливаете режим приватный.если вам нужны какие-то данные, сохранение состояния игнорируется, если ваше приложение удалено, вы должны записать файл на SD-карту или в каталог внешнего хранилища.но он будет доступен только до android-Q.

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

В моем случае я использовал плагин cordova-custom-config

cordova plugin add cordova-custom-config

, и проблема была решена.

В файле config.xml для агрегирования

<platform name="android">
...
    <custom-preference name="android-manifest/application/@android:allowBackup" value="true" />
...
</platform>

просмотреть более подробную информацию о плагине в примере в cordova-custom-config-example

и документации по andoid в guide

...