2016-12-27 37 views
0

我想问一下如何创建一个离线应用程序,该应用程序可与Laravel API交谈,但在没有连接时仍可脱机工作。如何使Ionic应用程序使用Laravel编写的API工作,但仍然可以离线工作

比方说,我必须在Ionic中写一个测验移动应用程序,它要求Laravel API检索问题以及将分数存储在分贝中。

我刚刚开始学习离子,我现在对如何解决这个问题感到非常困惑。

什么混淆了我最有:

  1. 是否离子源生活Laravel源代码里面W/C提供的API?

  2. 如果我希望可以安装Ionic应用程序,那么在编译过程中是否应该包含Laravel源代码?

在此先感谢您的帮助。

回答

0

在您提供的几个细节中,我可以说Laravel代码不在离子应用程序中。离子应用程序与Laravel的后端API是分开的。您可能正在尝试使用基于ReST的架构,您可以使用API​​与Laravel Server进行通信。你需要将这些代码分开。

但是,如果没有任何互联网,您将无法访问这些API,因此您只能显示一些静态数据,或者您可以从数据库提供服务并稍后显示。对于如何使用SQLite数据库,你可以看看here

在你的后台,你可以有一个像

http://example.com/api/v1/questions/1/

的API将与选项获取一个问题,如果你想要的应用程序要获得离线存储的答案,您也可以拥有该答案。当用户回答时,您可以检查您是否可以访问互联网并发送答案并确认您是否可以访问,否则您可以将答案保存在数据库中,并在您有权访问时进行同步。您可以获取多个问题,以便用户在无法访问互联网的情况下可以回答多个问题。

希望它有帮助。 :)

+0

感谢您的回复,是的,我使用Laravel提供了一个RESTful API,并通过$ http w/Angular连接。我在网上跟随了一些教程,其中离子源代码在Laravel代码库中。 什么方法是实现离线同步最好也是最简单的方法?目前我正在计划在Laravel上使用MySql/SQlite作为后端,但似乎通过搜索网络,PouchDB + Couchdb总是出现。我会完全放弃Laravel,让我们来说说Express和Pouchdb。 会更容易吗? – theUnknown777

+0

如果您已经对Laravel感到满意,可以轻松使用它。仅仅因为这个原因,没有必要去使用Express。通过$ http的RESTful API可以很好地处理任何后端。请记住,如果您需要某种离线存储,则会有2个数据库不是1.其中一个后端是前端之一(前端是您的离子应用程序)。对于我已经提供给你的链接。希望能帮助到你。 –

0

您的php或一般服务器端代码是完全独立于您的离子应用程序。如果你希望你的应用程序脱机工作,你应该考虑一些事情,比如最初获取大量信息,并且在不提出任何额外请求的情况下处理这些数据。

但是,您的离子应用程序只包含前端。你可以为本地存储实现一些逻辑,但是如果你想让用户隐藏信息(例如解决方案),你必须将该逻辑放在专用服务器上。

+0

感谢您的回复,我不擅长解释事情。但是,简单来说,我遵循了一些教程,其中Ionic应用程序位于Laravel代码库内。而他们完全独立的Angular只使用$ http服务来访问Laravel公开的API。 我关心的问题是离线数据同步,Laravel + MySQL是否可以走这里? – theUnknown777

+0

你将不得不编写一个服务,它检查连接是否可用,如果是,则同步。像流星这样的框架已经关心这样的事情。 –

相关问题