如何在Ionic 3中使用cordova-sqlcipher-adapter插件?
核心疑问解答
cordova-sqlcipher-adapter是完全独立的插件,不需要搭配你之前使用的Ionic 3 SQLite底层插件共同使用,它本身就封装了完整的SQLite操作能力,还额外集成了SQLCipher加密模块,支持对数据库文件整库加密。你需要先卸载原来的cordova-sqlite-storage插件,避免两者的数据库操作接口冲突。
实操接入步骤
- 第一步:卸载原有SQLite相关依赖
执行以下命令:ionic cordova plugin remove cordova-sqlite-storagenpm uninstall @ionic-native/sqlite - 第二步:安装加密插件和对应适配包
执行以下命令,注意Ionic 3对应的Ionic Native版本为4.x系列,不要安装过高版本:ionic cordova plugin add cordova-sqlcipher-adapternpm install @ionic-native/sqlite@4 - 第三步:业务代码适配
你之前写的所有SQLite增删改查逻辑几乎不需要改动,只需要在打开数据库的配置中新增加密密码参数即可,示例代码:import { SQLite, SQLiteObject } from '@ionic-native/sqlite'; constructor(private sqlite: SQLite) {} // 初始化加密数据库 initEncryptDB() { this.sqlite.create({ name: '自定义数据库名.db', location: 'default', // 新增该参数配置加密密码,密码不要硬编码在客户端代码中,建议结合业务场景做安全存储 key: '你的自定义加密密码' }).then((db: SQLiteObject) => { // 后续建表、数据增删改查的写法和你之前的使用逻辑完全一致 db.executeSql('CREATE TABLE IF NOT EXISTS 表名 (id INTEGER PRIMARY KEY, 字段名 TEXT)', []) .then(() => console.log('建表成功')) .catch(e => console.log('建表失败', e)); }).catch(e => console.log('数据库打开失败', e)); }
注意事项
- 若你之前已经用非加密的SQLite插件生成了数据库文件,接入加密插件后无法直接读取原有未加密数据库,需要先做数据迁移:读取旧库所有数据,初始化加密新库后写入新库,再删除旧库文件即可。
- 加密密码一旦设置不可直接修改,如有改密需求,需要先用旧密码打开数据库,创建新的加密数据库并设置新密码,迁移所有数据后删除旧库即可。
内容的提问来源于stack exchange,提问作者K. Ajay
相关产品推荐
相关产品推荐

