跳到主要内容
版本:v3

@capacitor/storage

Storage API 为轻量级数据提供了一个简单的键值对持久化存储方案。

由于移动操作系统可能会定期清除 window.localStorage 中存储的数据,因此应改用此 API。当作为渐进式 Web 应用(PWA)运行时,该 API 会自动回退使用 localStorage

在 iOS 上,本插件使用 UserDefaults; 在 Android 上则使用 SharedPreferences。 存储的数据会在应用卸载时被清除。

注意:该 API 适合用作本地数据库。如果您的应用需要存储大量数据、高频读写或复杂查询,建议考虑基于 SQLite 的解决方案,例如支持全加密的 Ionic Secure StorageCapacitor 社区 也开发了多种其他存储引擎。

安装

npm install @capacitor/storage
npx cap sync

使用示例

import { Storage } from '@capacitor/storage';

const setName = async () => {
await Storage.set({
key: 'name',
value: 'Max',
});
};

const checkName = async () => {
const { value } = await Storage.get({ key: 'name' });

console.log(`Hello ${value}!`);
};

const removeName = async () => {
await Storage.remove({ key: 'name' });
};

处理 JSON 数据

Storage API 仅支持字符串值。但您可以在调用 set() 前使用 JSON.stringify 处理对象,在 get() 后使用 JSON.parse 解析返回值,从而实现对 JSON 的支持。

此方法也可用于存储非字符串值,如数字和布尔值。

API 文档

configure(...)

configure(options: ConfigureOptions) => Promise<void>

运行时配置存储插件。

值为 undefined 的选项将不会被应用。

参数类型
options
ConfigureOptions

版本: 1.0.0


get(...)

get(options: GetOptions) => Promise<GetResult>

根据键名获取存储中的值。

参数类型
options
GetOptions

返回值:

Promise<GetResult>

版本: 1.0.0


set(...)

set(options: SetOptions) => Promise<void>

为指定键名设置存储值。

参数类型
options
SetOptions

版本: 1.0.0


remove(...)

remove(options: RemoveOptions) => Promise<void>

移除存储中指定键名的值(如果存在)。

参数类型
options
RemoveOptions

版本: 1.0.0


clear()

clear() => Promise<void>

清空存储中的所有键值对。

版本: 1.0.0


keys()

keys() => Promise<KeysResult>

返回存储中所有已知键名的列表。

返回值:

Promise<KeysResult>

版本: 1.0.0


migrate()

migrate() => Promise<MigrateResult>

从 Capacitor 2 Storage 插件迁移数据。

此操作是非破坏性的,不会删除旧数据,仅当键名不存在时才会写入新数据。 迁移完成后如需删除旧数据,请调用 removeOld()。

返回值:

Promise<MigrateResult>

版本: 1.0.0


removeOld()

removeOld() => Promise<void>

移除 Capacitor 2 Storage 插件中以 _cap_ 为前缀的旧数据。

版本: 1.1.0


Interfaces

ConfigureOptions

属性类型描述默认值版本
groupstring设置存储分组。存储分组用于组织键值对。使用值 'NativeStorage' 可提供与 cordova-plugin-nativestorage 的向后兼容性。警告:当使用 'NativeStorage' 分组时,clear() 方法可能会意外删除其他数据。CapacitorStorage1.0.0

GetResult

属性类型描述版本
valuestring | null存储中与给定键名关联的值。如果该键名从未被设置或已被移除,则返回 null1.0.0

GetOptions

属性类型描述版本
keystring要获取存储值的键名。1.0.0

SetOptions

属性类型描述版本
keystring要关联存储值的键名。1.0.0
valuestring要存储的字符串值。1.0.0

RemoveOptions

属性类型描述版本
keystring要从存储中移除的键名。1.0.0

KeysResult

属性类型描述版本
keysstring[]存储中所有已知键名。1.0.0

MigrateResult

属性类型描述版本
migratedstring[]已迁移的键名数组。1.0.0
existingstring[]已存在存储中且包含 Capacitor 2 Storage 插件值的键名数组(包括已迁移键名)。1.0.0