ionic2開始storage默認(rèn)使用的是IndexedDB花枫,而不是LocalStorage
官方文檔:http://ionicframework.com/docs/storage/
存儲
存儲是存儲鍵/值對和JSON對象的簡單方法誊爹。存儲使用下面的各種存儲引擎坎怪,根據(jù)平臺選擇最佳的存儲引擎痴怨。
當(dāng)在本機(jī)應(yīng)用程序環(huán)境中運(yùn)行時,Storage將優(yōu)先使用SQLite,因?yàn)樗亲罘€(wěn)定和廣泛使用的基于文件的數(shù)據(jù)庫之一室梅,并避免了諸如本地存儲和IndexedDB之類的一些陷阱,例如操作系統(tǒng)決定清除這種數(shù)據(jù)在磁盤空間不足的情況下潭流。
當(dāng)在網(wǎng)絡(luò)中運(yùn)行或作為逐行Web應(yīng)用程序運(yùn)行時竞惋,Storage將按順序嘗試使用IndexedDB,WebSQL和localstorage灰嫉。
首先,如果要使用SQLite嗓奢,請安裝cordova-sqlite-storage插件:
ionic cordova plugin add cordova-sqlite-storage
接下來讼撒,安裝軟件包(默認(rèn)情況下為Ionic應(yīng)用程序> Ionic V1):
npm install --save @ionic/storage
接下來,將它添加到您的NgModule聲明中的導(dǎo)入列表中(例如股耽,insrc/app/app.module.ts):
import{ IonicStorageModule } from'@ionic/storage';@NgModule({declarations: [// ...],imports: [BrowserModule,IonicModule.forRoot(MyApp),IonicStorageModule.forRoot()],bootstrap: [IonicApp],entryComponents: [// ...],providers: [// ...]})exportclassAppModule {}
最后根盒,將其注入您的任何組件或頁面:
import{ Storage } from'@ionic/storage';exportclassMyApp {constructor(private storage: Storage){ }...// set a key/valuestorage.set('name','Max');// Or to get a key/value pairstorage.get('age').then((val) => {console.log('Your age is', val);});}
配置存儲
存儲引擎可以配置為特定的存儲引擎優(yōu)先級,也可以自定義配置選項(xiàng)傳遞給localForage物蝙。有關(guān)可能的選項(xiàng)炎滞,請參閱localForage配置文檔:https://github.com/localForage/localForage#configuration
注意:任何自定義配置將與默認(rèn)配置合并
import{ IonicStorageModule } from'@ionic/storage';@NgModule({declarations: [...],imports: [IonicStorageModule.forRoot({name:'__mydb',driverOrder: ['indexeddb','sqlite','websql']})],bootstrap: [...],entryComponents: [...],providers: [...]})exportclassAppModule { }