首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在本机设备上未准备好Ionic5 /存储

在本机设备上未准备好Ionic5 /存储
EN

Stack Overflow用户
提问于 2020-11-20 16:43:53
回答 2查看 1.4K关注 0票数 1

我们目前正在开发一个基于Ionic的应用程序。为了启用新的登录,并将数据保存很长一段时间,我们使用离子存储。在Android仿真(Android 11)中,一切似乎都很好。如果我在智能手机上安装这个应用程序(Android 11),我的脚本就会弹出,它就会中断。

该应用程序是一个应用程序,返回交付服务的下一个访问点。整个过程与一起工作,它与会话一起工作。会话以及访问数据和其他数据(浏览)应该保存在存储中。为了安全起见,对整个AES256 (值)进行了加密。

有什么已知的问题吗,我犯了错吗?

但没有主动错误。到目前为止,问题只发生在一个真正的设备之后的捆绑。

下面是一些代码片段:

app.module.ts

代码语言:javascript
运行
复制
imports: [
    IonicModule.forRoot(),
    IonicStorageModule.forRoot({
        name: '__tourenApp',
        driverOrder: ['sqlite', 'indexeddb', 'websql', 'localstorage'],
    }),
    ...
]

数据处理程序:

解密:.

代码语言:javascript
运行
复制
    const result = await this.storage.get(key);
    if (typeof result !== 'undefined' && result !== '' && result !== null) {
        try {
            const res: string = await this.aes256.decrypt(this.secureKey, this.secureIV, result);
            this.srvUtil.logMessage(`Eintrag '${key}' mit Wert '${res}' entschlüsselt und aus dem lokalem Speicher geholt`);
            return res;
        } catch (error) {
            this.srvUtil.logMessage(`Es konnten keine Daten für den Key '${key}' aus dem Speicher geholt werden`, MessageType.Error);
        }
    } else {
        return '';
    }
 ... Encrypt-Func:
    try {
        const res = await this.aes256.encrypt(this.secureKey, this.secureIV, value);
        await this.storage.set(key, res);
        this.srvUtil.logMessage(`Neuen Eintrag '${key}' mit Wert '${value}' verschlüsselt und im lokalem Speicher gesichert`);
    } catch (error) {
        this.srvUtil.logMessage(
            `Fehler beim Setzen eines neuen Storage Eintrags mit dem Key ${key} und dem Wert ${value}`, MessageType.Error);
    }

版本详细信息:

  • 离子CLI: 6.12.1
  • 离子角: 5.0.0
  • 离子储存: 2.2.0
  • 科多瓦: 9.0.0
  • 角芯: 9.0.0
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-18 09:33:01

我和一位专家一起发现了这个错误。错误在驱动程序中。很明显,在科多瓦岛下有一个问题。因此,对于所有下面的信息,不幸的是,它只适用于驱动程序变量"localstorage“。

票数 0
EN

Stack Overflow用户

发布于 2020-11-20 17:34:09

这听起来像报道的一种臭虫。显然,离子存储没有正确地等待SQLite做好准备。建议的解决方法是手动等待基础localForage的就绪事件:

代码语言:javascript
运行
复制
const localForage = await this.storage.ready();
localForage.ready(() => {
  // use storage
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64933418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档