基于PHP Web应用程序构建本地移动应用程序

5
我已经开发了一个PHP应用程序。我想使用phonegap.com或类似的方法基于相同的MySQL数据库开发本机应用程序。换句话说,将移动应用程序与Web应用程序连接起来。
它需要做一两件不同的事情。首先,使用本地GPS功能确定用户所在位置-我猜这可以通过HTML5来完成?
其次,每当Web应用程序用户收到通知时发送推送通知。
所有信息都已经存在于MySQL数据库中,除了上述两个特性以外,其他所有功能都正常运行。
我目前正在为Web应用程序中的所有内容开发API-使其成为API中心。在我的脑海中,通过API连接两个版本将很容易。
例如,用户在Web应用程序上注册。然后他被提供下载iPhone应用程序。
是否可能让他使用iPhone登录相同的帐户?另一方面,是否可以让他通过iPhone搜索数据库,并“添加新朋友”-使两个用户在朋友表中建立联系-即该朋友也是Web应用程序上的朋友?
我已经阅读了所有可用选项的大量信息,但仍然感到非常困惑!任何帮助都将非常有益。
5个回答

4
我本身不是手机开发人员,但我刚刚完成了一个原生的Android应用程序,可以连接到一个网站并能够登录,在网站上也能够做一些事情。如果GPS跟踪集成使用本地功能,那么不太可能使用HTML5(尽管我不确定它是如何工作的)。
基本上,为了连接到远程数据库/服务器,您需要从手机向服务器端脚本发出HTTP请求。
因此,为了实现您正在寻找的结果,工作流可能如下:
1.移动用户填写表单 ->
2.应用程序向服务器端脚本发送HTTP请求 ->
3.脚本完成繁重的工作(例如连接到数据库) ->
4.脚本呈现结果 ->
5.移动应用程序显示结果。
希望这有所帮助。

3

在我的客观意见中,有三种可能:

开始学习Objective-C

您将需要学习如何编写代码,并为您的用户提供最佳的本地体验。这将轻松让您使用GPS定位,或者您可以在手机上缓存内容。手机上的互联网连接的一个关键问题是互联网连接可能不稳定。因此,您必须为此进行设计。您已经采取了正确的方法:直接使用MySQL C-API与数据库服务器建立连接可能效果不佳,因为该协议不是无状态的。您必须首先登录到服务器,然后才能发送SQL查询。

通过使用您的API,希望它是无状态的,甚至是RESTful API,那么您可以为您的本机iPhone应用程序采取一些不错的快捷方式。然后,您可以使用 RestKit库将服务器的JSON响应轻松转换为对象,执行缓存和其他不错的功能。

编写Web应用程序

第二种可能性是使用最先进的HTML5技术构建一个漂亮的Web应用程序。这样做的好处是,您可以编写Android应用程序,因为两个移动设备都使用WebKit浏览器。虽然实际情况并非完全如此,因为有不同版本的Android和不同的屏幕尺寸,但总体上这个假设是成立的。例如,看看谷歌日历的Web应用程序,我认为这是一个很好的折衷方案。您还可以为此获取主屏幕图标,并且无需进行应用程序批准过程,并且可以随时更新。使用HTML5离线存储可以给您一定程度的自由。
使用PhoneGap 在PhoneGap或其他HTML包装器框架中编写应用程序以生成Objective-C代码的选项是可行的,但我认为这不是一个好的选择。原因是您正在处理某种中间层,如果出现任何问题或遇到错误,您仍然需要深入了解Objective-C。另一个问题涉及iOS的更新。它可能会破坏一些依赖关系,然后您必须等待中间件更新以使用新功能。

那么,依据您的意见,最好只创建一个移动Web版本的Web应用程序 - 不同的用户界面等。然后允许iPhone、Android等用户从他们的主屏幕/桌面上创建快捷方式?感谢您的答案,非常有帮助! - Samwise
嗯,有道理也有不对。从技术角度来看,这是有意义的。通常客户只是想要一个应用程序,不管怎样。在这种情况下,薄包装层就足够了(基本上是为您的应用程序提供的第二个Web浏览器)。顺便说一句,如果您认为这个答案有帮助,请随意点赞。 - GorillaPatch
但是创建一个Web应用程序并不能解决接收APNs的问题。如果您需要这样一个复杂的应用程序,您应该选择原生应用程序。 - Angel G. Olloqui
什么是APN?- 然而,本地应用程序肯定可以比Web应用程序更加精细,并利用更多的iOS功能。 - GorillaPatch

1

Phonegap是开发这个应用程序的好方法。Phonegap仅支持客户端脚本-这意味着您无法嵌入php代码。但是,您可以轻松地在脚本中创建AJAX调用,从您已经开发的php应用程序/ api中获取和发送数据。

Phonegap还支持GPS和数据存储选项,您可以在本地存储数据,并在有互联网连接时进行同步。

对于反向同步(服务器到客户端),您将有两个选项。 1. 创建JavaScript以频繁地进行ajax调用以检查更新。 2. 使用推送通知(这是一个有关iOS APNs和Phonegap集成的教程)- http://devgirl.org/2012/10/19/tutorial-apple-push-notifications-with-phonegap-part-1/

使用Phonegap取决于个人偏好。积极方面是,您可以节省时间/成本,因为所有平台都使用相同的代码。消极方面是,在更改页面时会略有延迟,看起来像网站,但是您可以通过使用诸如Jquery mobile之类的东西预取所有页面,然后来回动画来避免这种情况。这也将有助于在用户自由漫游应用程序的同时在单独的独立线程中上传数据。

希望这有所帮助。

0

简单来说,最好的方式是使用带有 PhoneGap 的 PHP Web 服务。

您也可以通过 PHP 和 Android 来进行开发。这是一个非常好的且简单的方法。您可以尝试 这里 的教程。


0

你可以尝试使用Visual Studio Community的免费版本中的Xamarin(.Net的一部分),然后与你的PHP Web应用程序进行交互。接着,你可以将编写在C#中的本地Xamarin应用程序编译为Android和iOS。


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