0

设置不起作用。获取是行不通的。我什至无法在 iOS 上获取驱动程序名称。调用“准备好”是行不通的。电话只是不返回。承诺没有兑现。外面就像一片空白。

Android 和 Chrome 上的 Ionic Storage 运行良好。

这些是我安装的插件:

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)=>{

我也使用 catch 来捕获错误,但没有。它只是死了。“storage.ready”甚至没有返回。

在我的 app.module.ts 中,我在正确的地方有这些行:

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

IonicStorageModule.forRoot(),

有任何想法吗?我的头因为撞到墙上而疼。

4

1 回答 1

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']
}),
于 2018-03-12T09:43:43.297 回答