离线工作和数据同步的Ionic框架

8

我正在使用ionic框架开发一个应用程序,它将从使用laravel构建的API中获取一些数据,并将其保存在数据库中,这样用户在离线时可以继续使用该应用程序。我在互联网上进行了一些研究,并找到了一个名为pouchDB的插件,它是否推荐用于我所需的功能?最佳实现方式是什么?


我们可以不用PouchDB来做这个吗?我的意思是使用MySQL。 - Usman Iqbal
2个回答

13

根据您想要缓存的数据量,可以将它保存在本地存储中。

逻辑如下:

  1. 向API发出$http请求
  2. .success中将响应字符串化并存储在本地存储中
  3. .error中解析存储的本地存储响应
  4. .success.error中填充相同的$scope变量

这样,如果您的请求成功(设备联网且API可用),则会存储数据。否则,请求失败(没有网络或其他原因),则使用已存储的数据。

可以在此处看到示例:

https://www.thepolyglotdeveloper.com/2014/06/saving-data-with-ionicframework/

但是,正如之前的答案所提到的,如果您有CouchDB数据库设置,PouchDB是一个很好的选择。以下是一些同步解决方案的Ionic教程:

https://www.thepolyglotdeveloper.com/2014/12/syncing-data-firebase-using-ionic-framework/ http://devgirl.org/2014/12/30/sync-data-using-pouchdb-in-your-ionic-framework-app/

此致,敬礼。


1
很棒的教程!我最近也写了一个PouchDB+Ionic教程:https://github.com/nolanlawson/pouchdb-ionic#readme - nlawson
1
谢谢夸奖! - Nic Raboy
如果您有数千条记录,将数据存储在本地存储中是否是离线工作的好选择?一个谦虚的问题。 - Usman Iqbal

5
PouchDb是为您的应用程序提供数据同步的好解决方案。但根据您需要做什么,您可以在几个PaaS之间进行选择,这些PaaS本身提供了数据同步和离线功能(以及许多其他功能,如oAuth2身份验证和推送通知)。
我已经使用过一些可以建议的平台:
1. Parse 2. Firebase 3. Microsoft Azure移动服务 所有这些平台都提供客户端,可用于所有本机移动环境和JavaScript。

1
@Stacktwo,我建议您定期将数据同步到CouchDB实例并进行操作。 - Riccardo
1
我使用PouchDB和IBM Cloudant进行了概念验证,并取得了良好的成功(我在IBM工作)。 - Chris Snow
@SHC 我能在Ionic应用程序中使用PouchDB和MySQL服务器并将它们同步吗? - Anjana
@SHC 你确定吗?你能给我一些相关的链接吗? - Anjana
Parse的问题在于JS SDK尚不支持离线功能... :-/ - PAD
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接