我正在继续研究我们的移动应用策略组织解决方案。有两个有些矛盾的要求:
它应该是一个网络应用程序,因为我们在服务器上更新应用程序时,用户的所有更新都是即时的
应用应尽可能利用本机UI小部件和本机设备功能
使用PhoneGap,过程似乎是您通常将UI保留在设备上,作为已编译应用程序的一部分,您可以通过AJAX访问服务器以处理数据更新和提交。然后,您可以使用PhoneGap API访问本机设备的UI小部件和功能。
然而,在这样做的过程中,我们失去了第一点。
我的问题是,如果可以使用PhoneGap在应用程序中创建一个“Web视图”,这将允许我们将UI保留在我们的服务器上(该应用程序几乎成为自定义浏览器)。如果是这样,我们的UI仍然可以通过PhoneGap的API访问设备的本机功能,还是只有在我们编写UI代码时才能访问?
答案 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>