跳转至正文

数据存储 Capacitor 插件

使用 SQLite 数据库在本地存储数据,支持简单的键值对 API 和加密功能

安装

bun add @capgo/capacitor-data-storage-sqlite bunx cap sync
npm、pnpm 或 yarn
  • npm install @capgo/capacitor-data-storage-sqlite
  • pnpm add @capgo/capacitor-data-storage-sqlite
  • yarn add @capgo/capacitor-data-storage-sqlite

指南

如何在 Capacitor 中使用 Data Storage

在设备上测试

下载 Capgo App,然后扫描二维码 code。

Data Storage 插件预览二维码 code

使用 @capgo/capacitor-data-storage-sqlite

使用 SQLite 存储键/值字符串对。

安装

bun add @capgo/capacitor-data-storage-sqlite
bunx cap sync

bunx cap sync 将插件的原生 code 复制到你的原生项目中。每次升级插件后都要重新运行。

导入

import { CapgoCapacitorDataStorageSqlite } from '@capgo/capacitor-data-storage-sqlite';

API 概览

方法 描述
openStore 打开一个 Store。
closeStore 关闭 Store。
isStoreOpen 检查 Store 是否已打开。
isStoreExists 检查 Store 是否存在。
deleteStore 删除一个 Store。
setTable 为现有 Store 设置或添加表。
set 通过指定的键值对存储数据。
get 根据指定的键获取数据值。
remove 删除指定键的数据。
clear 清空数据存储(删除所有键)。
iskey 检查指定的键是否存在。
keys 获取数据键列表。
values 获取数据值列表。
filtervalues 获取筛选键的数据值列表。
keysvalues 获取数据键值对列表。
isTable 检查表是否存在。
tables 获取当前 store 的表列表。
deleteTable 删除表。
importFromJson 从 JSON 导入数据库。
isJsonValid 校验 JSON 对象是否有效。
exportToJson 将指定的数据库导出为 JSON 对象。
vacuum 重建当前的 SQLite store 以回收未使用的磁盘空间。

示例

openStore()

打开一个 Store。

import { CapgoCapacitorDataStorageSqlite } from '@capgo/capacitor-data-storage-sqlite';

await CapgoCapacitorDataStorageSqlite.openStore({
  database: 'database',
  table: 'table',
  encrypted: false,
  mode: 'encryption',
  autoVacuum: 'none',
});

closeStore()

关闭 Store。

import { CapgoCapacitorDataStorageSqlite } from '@capgo/capacitor-data-storage-sqlite';

await CapgoCapacitorDataStorageSqlite.closeStore({ database: 'database' });

isStoreOpen()

检查 Store 是否已打开。

import { CapgoCapacitorDataStorageSqlite } from '@capgo/capacitor-data-storage-sqlite';

const result = await CapgoCapacitorDataStorageSqlite.isStoreOpen({ database: 'database' });
console.log(result);

isStoreExists()

检查 Store 是否存在。

import { CapgoCapacitorDataStorageSqlite } from '@capgo/capacitor-data-storage-sqlite';

const result = await CapgoCapacitorDataStorageSqlite.isStoreExists({ database: 'database' });
console.log(result);

deleteStore()

删除一个 Store。

import { CapgoCapacitorDataStorageSqlite } from '@capgo/capacitor-data-storage-sqlite';

await CapgoCapacitorDataStorageSqlite.deleteStore({
  database: 'database',
  table: 'table',
  encrypted: false,
  mode: 'encryption',
  autoVacuum: 'none',
});

setTable()

为现有 Store 设置或添加表。

import { CapgoCapacitorDataStorageSqlite } from '@capgo/capacitor-data-storage-sqlite';

await CapgoCapacitorDataStorageSqlite.setTable({ table: 'table' });

上表列出了 22 个核心方法。Listener 和版本辅助函数,以及每个方法的完整约定,均记录在 GitHub 仓库.

完整参考文档

继续阅读:使用 @capgo/capacitor-data-storage-sqlite

如果你正在使用 使用 @capgo/capacitor-data-storage-sqlite 要规划存储和文件处理,请将其与 @capgo/capacitor-data-storage-sqlite 关于 @capgo/capacitor-data-storage-sqlite 中的实现细节, 快速入门 有关“入门指南”中的实现细节, @capgo/capacitor-file 关于 @capgo/capacitor-file 中的实现细节, 使用 @capgo/capacitor-file 用于“使用 @capgo/capacitor-file”中的原生能力,以及 @capgo/capacitor-uploader 了解 @capgo/capacitor-uploader. 的实现细节

常见问题

Data Storage 插件常见问题

如何在 Capacitor 应用中安装 Data Storage 插件?

运行 "bun add @capgo/capacitor-data-storage-sqlite"(或 "npm install @capgo/capacitor-data-storage-sqlite"),然后运行 "bunx cap sync",让 iOS 和 Android 项目加载到原生 code。再在你的应用 code 中从 "@capgo/capacitor-data-storage-sqlite" 导入即可。

@capgo/capacitor-data-storage-sqlite 支持 React、Vue 和 Angular 吗?

支持。Data Storage 是一个 Capacitor 包,因此任何运行在 Capacitor 里的 Web 框架都能用,包括 Ionic、React、Vue、Angular、Svelte 和纯 JavaScript。

@capgo/capacitor-data-storage-sqlite 支持哪个 Capacitor 版本?

Capgo 插件遵循 Capacitor 的主版本号:请使用与 Capacitor 主版本号一致的插件主版本(例如插件 v8 对应 Capacitor 8)。GitHub README 中的兼容性表列出了仍在维护的版本。

@capgo/capacitor-data-storage-sqlite 是免费开源的吗?

是的。code 的源码已在 GitHub 公开,地址是 https://github.com/Cap-go/capacitor-data-storage-sqlite/,该包可从 npm 免费安装。欢迎提交 Bug 报告和 Pull Request。

我可以在不经过 App Store 审核的情况下,更新使用了 Data Storage 的 code 吗?

安装或升级插件会改动原生 code,因此需要重新做一次商店构建。之后,调用该插件的 JavaScript、HTML 和 CSS 改动就能通过 Capgo live updates 立即发布。

无需等待应用审核,即可发布数据存储变更

只要插件已包含在你的商店版本中,Capgo live updates 就能在几分钟内把 JavaScript、HTML 和 CSS 的改动推送给用户。

开始使用 Capgo