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

时间:2012-05-01 10:05:42

标签: php iphone mobile cordova web

我开发了一个PHP应用程序。我想使用phonegap.com或类似的方法来开发基于相同MySQL数据库的本机应用程序。换句话说,将移动应用程序与Web服务器连接起来。

它需要以不同的方式做一两件事。首先,使用原生GPS功能来确定用户的位置 - 我猜这可以通过HTML5完成吗?

其次,每当Web应用程序用户收到通知时发送推送通知。

MySQL数据库中已经存在所有信息,除了上述两个功能之外的所有功能都正常运行。

我目前正在为Web应用程序上的所有内容开发API - 使其以API为中心。在我看来,通过API连接这两个版本很容易。

例如,用户在Web应用程序上注册。然后他被提供给iphone应用程序下载。

是否可以让他通过iPhone登录。另一方面,他是否有可能通过iphone搜索数据库,并“添加新朋友” - 在朋友表中建立两个用户的连接 - 其中,朋友也是朋友网络的应用程序?

我一直在阅读所有可用选项,但仍然非常困惑!任何帮助都会非常有用。

6 个答案:

答案 0 :(得分:3)

我自己不是电话开发人员,但是我刚刚完成了一个本地Android应用程序,它连接到一个网站,并且能够登录,做一些可以在网站上做的事情。如果GPS跟踪集成使用的是本机功能,那么它不太可能使用HTML5(虽然我不确定它是如何工作的)。

基本上,为了连接到远程数据库/服务器,您需要从手机向服务器端脚本发出HTTP请求。

所以只是得出结论: 为了实现结果,您正在寻找工作流程可能如下所示:

1.移动用户填写表单 - >

2.App向服务器端脚本发出HTTP请求 - >

3.script做了很多努力(例如连接到数据库) - >

4.script呈现结果 - >

5.Mobile app显示结果。

我希望这会有所帮助。

答案 1 :(得分:3)

我的客观意见有三种可能性:

开始使用Objective-C

您必须学习如何编码,并为您的用户获得最佳的原生体验。这将很容易让您使用GPS定位,或者您可以在手机上缓存内容。手机上的互联网连接的一个关键问题是互联网连接可能是不稳定的。所以你必须为此设计。您已采用正确的方法:使用直接MySQL C-API直接连接到数据库服务器将无法正常工作,因为此协议不是无状态的。您必须先登录服务器,然后才能发送SQL查询。

通过使用希望无状态的API,甚至可能是RESTful API,您可以为您的原生iPhone应用程序提供一些不错的快捷方式。然后,您可以使用RestKit库轻松地将JSON答案从服务器转换为对象,执行缓存和其他不错的功能。

撰写网络应用

第二种可能性是使用最先进的HTML5技术构建一个漂亮的Web应用程序。最棒的是,您可以编写Android应用程序以及两个移动设备都使用webkit浏览器。嗯,事实并非如此,因为有不同版本的Android有不同的屏幕尺寸,但一般来说这个假设成立。例如,看看Google的Google日历网络应用程序,我认为这是一个很好的妥协。您还可以获得一个主屏幕图标,您将没有应用程序批准过程,可以随时更新。使用HTML5离线存储可以为您提供一定程度的自由。

使用Phonegap

在PhoneGap或其他一些生成Objective-C代码的HTML包装器框架中编写应用程序的选项是可能的,但在我看来这不是一个好的选择。原因是你正在开发某种中间层,如果出现任何问题或遇到错误,你将不得不潜入Objective-c。另一个问题是关于iOS的更新。它可以打破一些依赖关系,然后你必须等到你的中间件更新才能使用新功能。

答案 2 :(得分:1)

Phonegap是开发此应用程序的好主意。 Phonegap虽然只支持客户端脚本 - 这意味着你不能在其代码中嵌入php。但是,您可以在脚本中轻松创建AJAX调用,从已经开发的php app / api获取和发送数据。

Phonegap还支持GPS和数据存储选项,您可以在本地存储数据,并在互联网可用时稍后同步。

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

使用phonegap取决于一个人的偏好。从积极的方面来说,节省了时间/成本,因为所有平台都使用相同的代码。在消极方面,它在更改页面时会略微滞后,导致它看起来像一个网站,但你可以通过使用像jquery mobile这样的东西预取所有页面然后来回动画来避免这种情况。这也有助于在单独的独立线程中上传数据,同时用户可以在应用程序中自由漫游。

希望有所帮助。

答案 3 :(得分:0)

使用Zend Studio。 Zend Studio现在允许开发人员使用PHP开发移动应用程序。 请参阅以下链接:News Tutorial

答案 4 :(得分:0)

简单地说,最好的方法是使用带有手机间隙的php网络服务。

你也可以使用PHP和android来浏览android。这是一个非常好的简单方法。试试教程here

答案 5 :(得分:0)

您可以将Xamarin(.Net的一部分)与免费版本的Visual Studio社区一起放入托盘,然后与您的PHP Web应用程序进行交互。然后,您可以将本机Xamarin应用程序(用C#编写)编译为Android和iOS。