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

允许指定使用特定的存储引擎

results matching ""

    No results matching ""