我正在做angular项目,我们也在用它来创建android应用程序。我们正在为此目的使用电容器。
我遇到了一个问题,那就是我已经实现了使用api网关的appsync资源,我的appsync与在线门户网站以及android应用程序一起工作。但我们也希望离线模式能够正常工作,目前,在变异中添加以下部分后
update : (cache, { data }) =>
{
const gsquery = this.appSync.getDetailed();
if(cache) {
const olddata = cache.readQuery({ query: gsquery });
olddata.getDetailed = [ ...olddata.getDetailed.filter(item => item.ID !== myobject.ID), myobject ]
cache.writeQuery({ query: gsquery, data: olddata });
}
}
如果我关闭android应用程序并再次打开它。。。然后,我会丢失在执行过程中写入的缓存中的更改
writequery({query:gsquery,data:olddata});
但如果我只是失去了互联网(不要关闭应用程序)在移动应用程序周围玩,它会正常工作。。然后连接互联网一段时间后,我的服务器更新了我在互联网关闭时添加的数据。。。但只有当互联网关闭并且我关闭移动应用程序时。。它会丢失所有更改。。
起初我认为这可能是因为angular使用WebView创建android应用程序时的工作方式,但我只会丢失缓存中的更改,不会丢失整个缓存,当互联网消失时,我仍然可以看到缓存中的所有记录,我关闭应用程序并再次打开它。
我使用的是fetchpolicy=networkonly(因为我没有使用watchquery),我使用的是angular8和capacular2
任何帮助都将不胜感激,我已大致搜索了所有内容。
暂无答案!
目前还没有任何答案,快来回答吧!