使用PhoneGap并在服务器上保留UI

时间:2011-06-06 15:01:39

标签: client-server cordova

我正在继续研究我们的移动应用策略组织解决方案。有两个有些矛盾的要求:

  • 它应该是一个网络应用程序,因为我们在服务器上更新应用程序时,用户的所有更新都是即时的

  • 应用应尽可能利用本机UI小部件和本机设备功能

使用PhoneGap,过程似乎是您通常将UI保留在设备上,作为已编译应用程序的一部分,您可以通过AJAX访问服务器以处理数据更新和提交。然后,您可以使用PhoneGap API访问本机设备的UI小部件和功能。

然而,在这样做的过程中,我们失去了第一点。

我的问题是,如果可以使用PhoneGap在应用程序中创建一个“Web视图”,这将允许我们将UI保留在我们的服务器上(该应用程序几乎成为自定义浏览器)。如果是这样,我们的UI仍然可以通过PhoneGap的API访问设备的本机功能,还是只有在我们编写UI代码时才能访问?

3 个答案:

答案 0 :(得分:2)

最近PhoneGap Google Group出现了类似的问题 有一件事是,如果您从远程服务器加载UI和核心功能,则不太可能通过应用商店认证,因为这会使认证的大部分目的无效。

答案 1 :(得分:1)

如果您要执行此操作,则应设置Web服务,以返回要向用户显示的内容。然后,您可以使用jQuery Mobile和PhoneGap获取从服务器返回的内容,并使用您需要的相应本机UI小部件和功能将其显示在应用程序上。

因此,使用jQuery Mobile通过以下方式访问服务器以获取数据:

var fileUrl = "http://www.mywebserver.com/servedevice?data=current&selection=fresh";
$.ajax({
    url: fileUrl,
    dataType: "html",
    success: function( html ) {
        // If the call succeeds, do something with the return value here
    }
});

还有许多其他方法可以处理它,包括JSONP方法。有关详细信息,请参阅文档 http://api.jquery.com/jQuery.ajax/

答案 2 :(得分:1)

另一种方法是将HTML文件指向JavaScript的服务器,就像加载CDN文件一样。然后,您的应用程序的JavaScript将在运行时加载,而不是捆绑到应用程序中。但是,当它实际运行时,它在PhoneGap WebView中运行,因此它可以访问所有PhoneGap API。

这是jQuery Mobile示例:

<script src="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script>