我们目前正在开发一个基于Ionic的应用程序。为了启用新的登录,并将数据保存很长一段时间,我们使用离子存储。在Android仿真(Android 11)中,一切似乎都很好。如果我在智能手机上安装这个应用程序(Android 11),我的脚本就会弹出,它就会中断。
该应用程序是一个应用程序,返回交付服务的下一个访问点。整个过程与一起工作,它与会话一起工作。会话以及访问数据和其他数据(浏览)应该保存在存储中。为了安全起见,对整个AES256 (值)进行了加密。
有什么已知的问题吗,我犯了错吗?
但没有主动错误。到目前为止,问题只发生在一个真正的设备之后的捆绑。
下面是一些代码片段:
app.module.ts
imports: [
IonicModule.forRoot(),
IonicStorageModule.forRoot({
name: '__tourenApp',
driverOrder: ['sqlite', 'indexeddb', 'websql', 'localstorage'],
}),
...
]数据处理程序:
解密:.
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);
}版本详细信息:
发布于 2021-01-18 09:33:01
我和一位专家一起发现了这个错误。错误在驱动程序中。很明显,在科多瓦岛下有一个问题。因此,对于所有下面的信息,不幸的是,它只适用于驱动程序变量"localstorage“。
发布于 2020-11-20 17:34:09
这听起来像报道的一种臭虫。显然,离子存储没有正确地等待SQLite做好准备。建议的解决方法是手动等待基础localForage的就绪事件:
const localForage = await this.storage.ready();
localForage.ready(() => {
// use storage
});https://stackoverflow.com/questions/64933418
复制相似问题