问题由于没有对我们的Ionic应用程序进行任何更改,现在在一些Android设备上调用putAttachment失败。
简介:
- 使用环境:离子/Angular
- 平台:安卓
- 适配器:cordova插件sqlite-2
- 服务器:CouchDB
我们的应用程序多年来一直运行良好,没有改变pouchdb的用法。但就在最近两周,我们在保存文档附件(jpeg图像)时遇到了麻烦。
我已经能够在我的开发环境中重现这个问题,并将问题隔离到putAttachment方法从未返回。它也没有抛出任何错误。我已经升级到最新的pouchdb和cordova-plugin-sqlite-2适配器,没有任何变化。我们怀疑,由于我们的应用程序没有变化,Android操作系统中的某些内容发生了变化,但我们对此知之甚少。我们的用户有各种各样的设备,我们在Android 9、10、11和12上都看到过失败。
我已经重构了代码,在创建原始文档时内联附件,但在这种情况下post()方法不返回。在这两种情况下,我们都将附件(image/jpeg类型)作为Blob添加。
我还尝试将base64编码的图像数据作为字符串添加到附件中。在这种情况下,putAttachment或post确实可以工作,我们似乎在本地数据库中获得了一个有效的文档和附件,但在这种情况下,本地文档无法同步回CouchDB(可能是由于409/Conflict,但我还没有深入研究)。
我真的不认为pouchdb代码一定有什么问题,但是我想知道如何调试这个问题。我如何才能确定我们在putAttachment方法中的哪一点锁定了?我还把这个问题放在那里,看看其他人是否有类似的问题。这个问题已经持续了大约两个星期。7月底发布了各种Android更新。所以我们认为这就是原因。
1条答案
按热度按时间hjzp0vay1#
不确定Android中的什么变化导致了这个问题,但它似乎与this issue有关。
线程中提到了一些修复,首先尝试将polyfils.js放在index.html中的cordova.js之前(此处引用)