ionic2開始storage默認使用的是IndexedDB,而不是LocalStorage
官方文檔:http://ionicframework.com/docs/storage/
存儲
存儲是存儲鍵/值對和JSON對象的簡單方法。存儲使用下面的各種存儲引擎,根據(jù)平臺選擇最佳的存儲引擎。
當在本機應用程序環(huán)境中運行時,Storage將優(yōu)先使用SQLite,因為它是最穩(wěn)定和廣泛使用的基于文件的數(shù)據(jù)庫之一,并避免了諸如本地存儲和IndexedDB之類的一些陷阱,例如操作系統(tǒng)決定清除這種數(shù)據(jù)在磁盤空間不足的情況下。
當在網(wǎng)絡中運行或作為逐行Web應用程序運行時,Storage將按順序嘗試使用IndexedDB,WebSQL和localstorage。
首先,如果要使用SQLite,請安裝cordova-sqlite-storage插件:
ionic cordova plugin add cordova-sqlite-storage
接下來,安裝軟件包(默認情況下為Ionic應用程序> Ionic V1):
npm install --save @ionic/storage
接下來,將它添加到您的NgModule聲明中的導入列表中(例如,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)先級,也可以自定義配置選項傳遞給localForage。有關(guān)可能的選項,請參閱localForage配置文檔:https://github.com/localForage/localForage#configuration
注意:任何自定義配置將與默認配置合并
import{ IonicStorageModule } from'@ionic/storage';@NgModule({declarations: [...],imports: [IonicStorageModule.forRoot({name:'__mydb',driverOrder: ['indexeddb','sqlite','websql']})],bootstrap: [...],entryComponents: [...],providers: [...]})exportclassAppModule { }