本文承接上篇《开发Android平台的Cordova应用》。html
有Cordova CLI出现以前,在多种设备平台上开发应用须要安装各平台的SDK,并把web内容在平台项目间来回复制,也不能同时构建或测试多个应用。CLI解决了上述大部分问题,但仍是有局限性。PhoneGap build提供了在云端构建PhoneGap应用的方法,不须要在开发主机上安装大量的软件。开发人员要作的只是写web应用内容并把文件上传到云端,剩下的工做都交给PhoneGap Build。web
接下来讲说如何创建和使用PhoneGap Build服务打包Cordova应用,并把应用分享给其余人。apache
PhoneGap Build(https://build.phonegap.com)是基于云端的用于PhoneGap应用的构建服务。它是收费的,但有免费的服务版本,还有几个其余功能的免费版。使用Build开发者能够把应用加载到Build服务器的应用定义中,服务器就会自动构建为每一个支持的移动平台构建原生应用。以下图说明了构建服务是如何工做的。浏览器
PhoneGap Build能够构建web应用并部署到Native应用中,使开发者 不用安装任何移动设备的SDK,节省下载、配置SDK的时间。安全
在PhoneGap Build中,web应用的源码也能够回传给开发者,能够再添加集成数据或其余应用中的复杂部分。开发者能够继续使用PhoneGap Build或者在本地开发。服务器
版本控制系统容许开发者在本地部署或在放在云端的项目中协做,Build也容许开发者配置项目以便和其余人共同开发同一个PhoneGap Build项目。开发者能够只赋予测试人员只读的权限,或者给其余开发者读/写权限。网络
Build容许开发者提供给其余合做的开发人员隐藏的Build部分,只给其余人构建的结果以方便他人进行测试。app
许多开发者使用Build的缘由是能够提供给测试人员快速简单的升级应用的方法。之前测试人员在测试设备上一按版本升级Native应用,Build用Hydration简化了这个过程(https://build.phonegap.com/docs/advanced-hydration)。这个功能支持PhoneGap 2.0以上的版本,能够用在Android或iOS平台上。测试
启用Hydration后,Build服务从服务器建立带有web内容的应用的版本,而不是把web内容打包到应用中。这个功能明显减小了构建时间,容许web内容用无线网络反复部署到应用中,这样每次应用加载的都是可用的新版本。网站
当开发者上向构建服务上传新版的web应用内容时,内容被打包发布(不是打包成整个Native应用)。用户下一次打开应用时,应用会提示用户有新版本可用。以后用户下载更新并替换当前应用。
Hydration功能是为测试设计的,不该该使用在生产环境中。若是企业产品中须要这种功能,能够参考SAP移动平台(SMP),它的Kapsel组件提供生产环境下的无线web应用内容更新。
接下来讲明一下如何使用PhoneGap Build。开始使用前首先要注册一个账号,以后用一个简单的示例说明如何用Build服务建立PhoneGap应用,最后还会说明如何使用更多服务配置选项。登陆PhoneGap Build网站(http://build.phonegap.com),若是没有账号请注册一个。
只是为了说明如何使用PhoneGap Build,能够建立一个简单的html页面,代码以下:
<!DOCTYPE html> <html lang="en"> <head> <title>Sample Application</title> </head> <body> <h1>Sample Application</h1> <p>This is a sample web application.</p> </body> </html>
登陆网站,若是以前没有添加过应用,会打开建立第一个应用的页面,或者在Build的主页点击"+"新建按钮也能够建立新应用。接下来,Build服务会打开以下图所示的页面,开发者能够填一个Git repository的URI连接或者直接上传文件(html文件须要打包成zip文件上传)。
上传完成后,页面显示以下图。由于没有提供配置文件,Build默认设置应用的名字为"PhoneGap Build",还能够修改和添加简介。
若是选择了Enable debugging checkbox,会在应用中启用weinre调试(以前的文章Cordova应用技巧中提到过weinre),若是选择了Enable hydration会启用hydration功能(参考上面)。
在选好应用设置后,点击Ready to build按钮启动打包过程,以后显示的页面以下图。在这里服务进行的是生成为每一个支持平台使用上传web内容构建Native应用的任务。页面会显示每一个支持的平台的图标,若是图标显示为灰色表示构建正在进行,蓝色表示已经完成,而红色表示失败。失败有时是由于build服务的故障,点击Rebuild按钮一般能够修复,有时是由于一些特殊缘由,如没有定义签名密钥。
点击应用标题或者下面某一个平台图标会打开一个页面,里边有更多应用的细节,如应用在哪构建成功,在哪构建失败。若是点击红色按钮,页面上会显示致使构建失败的错误信息。
Apple对签名密钥要求很严,其余大多数平台则无关紧要或者不使用。因为没有密钥致使构建失败的解决方法是提供密钥并从新构建,像上图的失败能够点击iOS处右侧的下拉菜单选择向项目添加一个key,以后在弹出的添加界面中能够为Key集合指定一个标题,这样方便为多个客户工做的开发者为不一样的项目或客户根所场景定义Key集合。
构建完成后,Build容许你访问每一个支持平台中打包的应用。用户能够用不一样的方式部署,这取决于设备商或运营商的支持。
最简单的部署方法是用扫码软件扫描上图右上方的二维码,扫码软件把二维码转化URL,能够在移动浏览器上打开连接,用户只要按照页面说明下载安装便可。
若是想让其余用户使用应用,可使用Collaborators设置。按照页面的说明步骤为每一个受权使用者定义一封电子邮件,使用者可使用的邮件地址登陆PhoneGap Build网站下载受权访问的应用。
有时候只是想使用native应用的可执行文件。能够在上图中每一个支持平台的右侧的蓝色按钮,点击下载相应的安装包,如Android的apk文件;也能够点击二维码下边的Install按钮下载所有构建完成的安装包。
另外能够在模拟器上打开移动浏览器,进入PhoneGap Build服务,点击二维码下边的Install连接直接下载应用。
安装应用时会提示启用应用功能,能够看到由于没有告诉Build服务启用或禁用什么,默认开启了所有功能权限。
若是不配置PhoneGap Build,它会使用默认配置。PhoneGap Build使用config.xml文件配置,这个文件定义为W3C Widget Packaging的一部分,使用XML配置规范。
把config.xml文件同web应用内容打包成zip格式,服务会使用config.xml文件的属性设置和安全设置。CLI在建立应用时生成了一个config.xml,内容以下:
<>xml version="1.0" encoding='utf-8'?> <widget id="com.cordovaprogramming.HelloWorld" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0> <name>Hello World 4</name> <description>A Sample Apache Cordova application that responds to the deviceready event.</description> <author email="dev@callback.apache.org" href="http://cordova.io"> Apache Cordova Team </author> <access orgin="*" /> <preference name="fullscreen" value="true" /> <preference name="webviewbounce" value="true" /> </widget>
上面配置内容仅有一些描述应用和关于应用选项的信息,你能够修改一下name和description节,并和应用一块儿打包上传到PhoneGap,能够看到相应的变化。
由于要用在不一样平台和各自的项目设置,实际上的config.xml文档要复杂的多,要配置多用于多个平台的设置,如程序图标、闪屏图像等,还要在使用PhoneGap API的地方配置安全设置。
PhoneGap Build支持大量插件,而且有支持开发者发布插件的能力,这些都须要在config.xml中描述。关于在conifg.xml选项的详细描述请参考:https://build.phonegap.com/docs/config-xml。
下篇步入“正题”,详细说说Cordova API。