我想开发一个与远程数据库同步的iPhone原生应用程序。是否可以使用PhoneGap开发此应用程序。如果我使用PhoneGap,如何从外部数据库获取数据?我可以在PhoneGap上使用PHP吗?
答案 0 :(得分:24)
PhoneGap允许您在iPhone上运行JavaScript和HTML应用程序。所有PHP代码都必须驻留在远程服务器中。
要从服务器获取数据,您必须使用XMLHttpRequest
对象或更友好的用户,例如jquery的$.get()
或$.post()
函数。
答案 1 :(得分:22)
我刚刚使用Ajax编译了一个带有PHP的PhoneGap应用程序来获取内容。
首先,在index.html头部加载jQuery库。在函数onBodyLoad()中,对PHP文件进行Ajax调用:
$('#content').load('http://www.example.com/test.php');
在HTML会话中,将div id =“content”放在要显示内容的位置。
PHP:
for($i=1; $i<=10; $i++) {
echo '<p>I\'m a PHP Loop! Value: ' . $i . ' of 10.</p>';
}
HTML将打印:
<p>I'm a PHP Loop! Value: 1 of 10.</p>
<p>I'm a PHP Loop! Value: 2 of 10.</p>
<p>I'm a PHP Loop! Value: 3 of 10.</p>
<p>I'm a PHP Loop! Value: 4 of 10.</p>
<p>I'm a PHP Loop! Value: 5 of 10.</p>
<p>I'm a PHP Loop! Value: 6 of 10.</p>
<p>I'm a PHP Loop! Value: 7 of 10.</p>
<p>I'm a PHP Loop! Value: 8 of 10.</p>
<p>I'm a PHP Loop! Value: 9 of 10.</p>
<p>I'm a PHP Loop! Value: 10 of 10.</p>
您也可以使用
$.get('test.php?name', function(data) {
$('#content').html(data);
});
你的test.php可能有类似的内容:
if (isset($_GET['name'])) {
echo "Asked for name!";
}
有了这个,你可以继续做一些好东西。我对这个问题有一个疑问:我可以托管外部PHP文件并在app store上部署应用程序吗?对此有任何限制吗?
答案 2 :(得分:9)
wm_eddie是对的。
另外,我想评论一下你的“我想建立一个原生的iPhone应用程序”的引用。为PhoneGap编写的应用程序是不是本机应用程序。虽然它们可以看起来像大多数情况一样, act 就像本机应用程序一样,但更好的比喻是将它们视为预打包,本地安装的Web应用程序,可以使用PhoneGap api,可以访问有限的本机功能子集。值得注意的是,此功能包括传感器(加速度计,gps等)和相机操作等。
这可能与您的使用无关,但只是想澄清一点......;)
(PhoneGap仍然是一个非常漂亮的工具,我在我的一些项目中使用它。但是,如果你需要一个完全原生的应用程序,除了必须在运行时间,但是使用大多数1-1语言依赖的符号预编译,然后我推荐我正在利用的Titanium。两种不错的工具,但它们提供截然不同的产品,具有不同的利弊。这是一个问题确定最终产品的要求,然后选择最有意义的平台。)