Ionic Storage не работает на iOS

Настройка не работает. Получение не работает. Я даже не могу получить имя драйвера на iOS. Вызов "готов" не работает. Звонки просто не возвращаются. Обещания остаются невыполненными. Это как пустота снаружи.

Ionic Storage на Android и Chrome работает нормально.

Это плагины, которые я установил:

cordova-plugin-device 1.1.4 "Device"
cordova-plugin-splashscreen 4.0.3 "Splashscreen"
cordova-plugin-statusbar 2.2.2 "StatusBar"
cordova-plugin-whitelist 1.3.1 "Whitelist"
ionic-plugin-keyboard 2.2.1 "Keyboard"
onesignal-cordova-plugin 2.2.1 "OneSignal Push Notifications"
cordova-sqlite-storage 2.0.4 "Cordova sqlite storage plugin"
cordova-plugin-inappbrowser 1.7.2 "InAppBrowser"
cordova-plugin-calendar 5.0.0 "Calendar"
cordova-plugin-compat 1.0.0 "Compat"
cordova-plugin-network-information 1.3.4 "Network Information"
cordova-plugin-add-swift-support 1.7.0 "AddSwiftSupport"
cordova-plugin-ionic 2.0.4 "IonicCordova"
cordova-plugin-background-mode 0.7.2 "BackgroundMode"

Это идея того, как я это использую. Имейте в виду, что мой код отлично работает на Android и в Chrome.

import { Storage } from '@ionic/storage';

this.platform.ready()
.then(()=>{
this.storage.ready()
.then(() => {
this.storage.get(name)
.then((value)=>{

Я также использую уловы, чтобы поймать ошибки, но их нет. Он просто умирает. «storage.ready» даже не возвращается.

В моем app.module.ts у меня есть эти строки в нужных местах:

import { IonicStorageModule } from '@ionic/storage';

IonicStorageModule.forRoot(),

Любые идеи? У меня болит голова от удара об стену.


person Magmatic    schedule 28.12.2017    source источник
comment
Вы поняли, что это было? Вы пытались использовать другой драйвер (не sqlite)?   -  person Sergey Rudenko    schedule 27.02.2018
comment
Перепробовав множество вещей, я, наконец, сдался и использовал старый добрый JavaScript localStorage.   -  person Magmatic    schedule 28.02.2018


Ответы (1)


Я сталкивался с подобными проблемами. Чтобы проверить, что происходит в вашем .ts

      this.storageEngine = localStorage.storage.driver;

А затем в вашем HTML-файле

        {{ storageEngine }}

Я подозреваю, что проблема в том, что он пытается использовать indexeddb, использовать sqlite на мобильных устройствах, чтобы сборщик мусора не стирал ваши данные.

Шаг 1:

ionic cordova plugin add cordova-sqlite-storage

Шаг 2: app.module.ts

IonicStorageModule.forRoot({
  name: '__yourapp-localstorage',
     driverOrder: ['sqlite','indexeddb', 'websql']
}),
person Christo Goosen    schedule 12.03.2018