让我用图示的方式来讲解下PhoneGap

junwong 发布于 2012/03/30 13:24
阅读 15K+
收藏 75
我在很多技术大会,技术讨论研讨会,甚至就是与一些开发者在他们的办公室内都讨论过移动开发与PhoneGap。我发现有很多相同的问题总是被大家提到,所以我写下这篇文章来让所有开发者更好的理解PhoneGap。

PhoneGap
在等会谈到更深入的细节之前,我想解释一下什么叫做 PhoneGap。PhoneGap 首先是一个应用程序容器技术,它能让你用 HTML,CSS,JavaScript来创建原生可安装的移动应用程序。PhoneGap 的核心引擎是100%开源的,它是属于Apache Cordova项目的旗下产品。你可以通过我的另外一篇文章来加强了解 PhoneGap.

PhoneGap 用户界面

PhoneGap 应用程序的用户界面使用 HTML,CSS以及JavaScript来创建的。而它的界面底层实质上是用浏览器视图创建的,而浏览器视图将占据真实设备的100%宽度与100%的高度。

建议把这个设想为一个无头部的Web浏览器。与普通浏览器一样可以渲染HTML内容,但是不会显示普通浏览器的边框。所以你可以充分使用这些空间,比如使用HTML/css创建导航顶部栏。

PhoneGap使用的 Web浏览器与手机操作系统的浏览器其实是一样的。在IOS上,这将是原生Objective-C的UIWebView类;在Android上,这是android.webkit.WebView。

PhoneGap API
PhoneGap 提供了很多API让你可以使用JavaScript来调用很多原生操作系统提供的功能。整个过程就是你用 JavaScript 来写程序的逻辑,然后 PhoneGap API 来处理与原生系统的交互。

你能在这里找到所有的 PhoneGap API.

另外,你自己也可以使用JavaScript来创建"原生插件"。PhoneGap 的原生插件能让你自己去自定义本地类与对应的JavaScript接口。当然你可以从读读下面几篇文章区更好的了解 PhoneGap 原生插件。

PhoneGap 应用程序打包与发布
虽然 PhoneGap 应用是用HTML,CSS,JavaScript创建的,但是最终生成的是二进制的应用程序压缩文件,这种文件是可以以正规标准发布渠道发布的。

对于IOS应用来说,最终输出是IPA文件,对于Android应用,则是 APK 文件,对于Windows Phone应用,是 xap 文件,等等。最重要的是打包的格式与与标准原生应用是一样的。随后你就可以在与之对应的卖场上发布了(iTunes Store,Android Market, Amazon Market, BlackBerry App World,Windows Phone Marketplace等等)

PhoneGap 高级应用程序架构
PhoneGap 应用程序运行起来更像Web应用程序一样,PhoneGap 客户端与对应的服务器交互传递数据。服务器先处理业务逻辑然后将结果返回给客户端。


一般说来,服务器都是指像Apache,IIS这种环境与一些特定的脚本语言比如 ColdFusion, Java, .NET, PHP等。PhoneGap 是一个完全的前台展示技术来与任何类型的服务器使用标准Web协议来交互数据。应用程序的对应服务器来处理业务逻辑与计算,然后从数据库保存以及获取数据。

PhoneGap 应用一般不直接与数据库打交道;而是以标准HTTP来与服务器程序交互。来获取HTML内容,REST-ful XML Services,JSON  Services,或者SOAP。这和你创建的那种基于AJAX技术的桌面型浏览器控件的应用是差不多的。

PhoneGap 的这种客户端模式架构一般都是使用 single-page application model,即应用程序的逻辑都是在一个HTML页面上。而且页面不是从内存上清空。所有的数据都是需要以HTML DOM的方式来显示出来。首先使用AJAX技术来从服务器上获取数据,然后使在JavaScript中保存这些变量。
虽然多页面的客户端程序架构现在也被支持了,但是因为会在加载分离页面的时候你回丢失一些需要保存的变量,所以不建议使用这个新架构。
加载中
0
铂金小猪
铂金小猪
这个,hold不住了~~太牛逼了··
0
f
feng_root

有启发。

0
jeffsui
jeffsui
感谢楼主分享,开阔视野!
0
笨二十一
笨二十一
顶起 不错哦
0
Erasin
Erasin
第三方>>>
0
lion_yang
lion_yang

应用中没有介绍中那么好,当前版本功能还是稍显薄弱。

0
jingdor
jingdor

有wingap没啊

0
TerryMa
TerryMa
一定要关注啊
0
s
siujack
其实phonegap还有比较多兼容性的问题亟需解决,占用内存大,界面反应慢也是个问题,而且感觉比用原生API的代码量要多,特别是如果phonegap要和原生系统进行交互,还要编写插件,但是如果只是开发普通的文字性的APP还是可以的
0
Victor_Amy
Victor_Amy
手机越来越电脑化了
返回顶部
顶部