Storage 存储
Storage可以很容易的存储键值对和JSON对象。Storage在底层使用多种存储引擎,根据运行平台选择最佳的存储方式。
当运行在Native模式时,Storage将优先使用SQLite,这是一种被广泛应用的文件数据库,避免了localstorage和IndexedDB的一些问题,比如操作系统在磁盘空间较低的时候会决定清理某些数据。
当运行在Web中或作为PWA应用时,Storage将尝试使用IndexedDB,WebSQL,或localstorage。
用法
首先,如果要使SQLite,先安装cordova-sqlite-storage插件:
cordova plugin add cordova-sqlite-storage --save
然后,安装下面这个包(RC0版本后已经默认包括了)
npm install --save @ionic/storage
然后,在NgModule
(在src/app.module.ts
中)的声明中的providers列表中添加它:
import { Storage } from '@ionic/storage';
@NgModule({
declarations: [
// ...
],
imports: [
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
// ...
],
providers: [
Storage
]
})
export class AppModule {}
最后,在需要的组件或页面中将其注入进来:
import { Storage } from '@ionic/storage';
export class MyApp {
constructor(storage: Storage) {
storage.set('name', 'Max');
storage.get('name').then((val) => {
console.log('Your name is', val);
})
}
}
实例成员
get()
获取指定key关联的值。
返回:
包含值的Promise
set(key, value)
设置指定key的值
Param | Type | Details |
---|---|---|
key |
string
|
标识这个值的键 |
value |
any
|
该键的值 |
返回:
Promise
remove(key)
删除指定key关联的值
Param | Type | Details |
---|---|---|
key |
string
|
标识该值的键 |
返回:
Promise
clear()
清除所有的键值对
返回:
Promise
length()
返回:
存储的键的数量
keys()
返回:
存储的键
forEach(iteratorCallback)
迭代每个键值对
Param | Type | Details |
---|---|---|
iteratorCallback |
any
|
回调函数,参数为(value, key, iterationNumber) |
setDriver(engine)
设置存储引擎
Param | Type | Details |
---|---|---|
engine |
string
|
允许指定使用特定的存储引擎 |