热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用PhoneGapBuild

本文承接上篇《开发Android平台的Cordova应用》。有CordovaCLI出现之前,在多种设备平台上开发应用需要安装各平台的SDK,并把web内

本文承接上篇《开发Android平台的Cordova应用》。

有Cordova CLI出现之前,在多种设备平台上开发应用需要安装各平台的SDK,并把web内容在平台项目间来回复制,也不能同时构建或测试多个应用。CLI解决了上述大部分问题,但还是有局限性。PhoneGap build提供了在云端构建PhoneGap应用的方法,不需要在开发主机上安装大量的软件。开发人员要做的只是写web应用内容并把文件上传到云端,剩下的工作都交给PhoneGap Build。

接下来说说如何建立和使用PhoneGap Build服务打包Cordova应用,并把应用分享给其他人。


什么是PhoneGap Build

PhoneGap Build(https://build.phonegap.com)是基于云端的用于PhoneGap应用的构建服务。它是收费的,但有免费的服务版本,还有几个其他功能的免费版。使用Build开发者可以把应用加载到Build服务器的应用定义中,服务器就会自动构建为每个支持的移动平台构建原生应用。如下图说明了构建服务是如何工作的。

![](img/18.png)

快速构建原型

PhoneGap Build可以构建web应用并部署到Native应用中,使开发者 不用安装任何移动设备的SDK,节省下载、配置SDK的时间。

在PhoneGap Build中,web应用的源码也可以回传给开发者,可以再添加集成数据或其他应用中的复杂部分。开发者可以继续使用PhoneGap Build或者在本地开发。

协作

版本控制系统允许开发者在本地部署或在放在云端的项目中协作,Build也允许开发者配置项目以便和其他人共同开发同一个PhoneGap Build项目。开发者可以只赋予测试人员只读的权限,或者给其他开发者读/写权限。

Build允许开发者提供给其他合作的开发人员隐藏的Build部分,只给其他人构建的结果以方便他人进行测试。

用Hydration更新内容

许多开发者使用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应用内容更新。


使用PhoneGapBuild

接下来说明一下如何使用PhoneGap Build。开始使用前首先要注册一个帐号,之后用一个简单的示例说明如何用Build服务创建PhoneGap应用,最后还会说明如何使用更多服务配置选项。登录PhoneGap Build网站(http://build.phonegap.com),如果没有帐号请注册一个。

一个小例子

只是为了说明如何使用PhoneGap Build,可以创建一个简单的html页面,代码如下:





Sample Application

This is a sample web application.




登录网站,如果之前没有添加过应用,会打开创建第一个应用的页面,或者在Build的主页点击"+"新建按钮也可以创建新应用。接下来,Build服务会打开如下图所示的页面,开发者可以填一个Git repository的URI链接或者直接上传文件(html文件需要打包成zip文件上传)。

![19]()

上传完成后,页面显示如下图。因为没有提供配置文件,Build默认设置应用的名字为"PhoneGap Build",还可以修改和添加简介。

![20]()

如果选择了Enable debugging checkbox,会在应用中启用weinre调试(之前的文章Cordova应用技巧中提到过weinre),如果选择了Enable hydration会启用hydration功能(参考上面)。

在选好应用设置后,点击Ready to build按钮启动打包过程,之后显示的页面如下图。在这里服务进行的是生成为每个支持平台使用上传web内容构建Native应用的任务。页面会显示每个支持的平台的图标,如果图标显示为灰色表示构建正在进行,蓝色表示已经完成,而红色表示失败。失败有时是因为build服务的故障,点击Rebuild按钮通常可以修复,有时是因为一些特殊原因,如没有定义签名密钥。

![21]()

点击应用标题或者下面某一个平台图标会打开一个页面,里边有更多应用的细节,如应用在哪构建成功,在哪构建失败。如果点击红色按钮,页面上会显示导致构建失败的错误信息。

![22]()

Apple对签名密钥要求很严,其他大多数平台则可有可无或者不使用。由于没有密钥导致构建失败的解决方法是提供密钥并重新构建,像上图的失败可以点击iOS处右侧的下拉菜单选择向项目添加一个key,之后在弹出的添加界面中可以为Key集合指定一个标题,这样方便为多个客户工作的开发者为不同的项目或客户根所场景定义Key集合。

部署PhoneGap Build应用

构建完成后,Build允许你访问每个支持平台中打包的应用。用户可以用不同的方式部署,这取决于设备商或运营商的支持。

最简单的部署方法是用扫码软件扫描上图右上方的二维码,扫码软件把二维码转化URL,可以在移动浏览器上打开链接,用户只要按照页面说明下载安装即可。

如果想让其他用户使用应用,可以使用Collaborators设置。按照页面的说明步骤为每个授权使用者定义一封电子邮件,使用者可以使用的邮件地址登录PhoneGap Build网站下载授权访问的应用。

有时候只是想使用native应用的可执行文件。可以在上图中每个支持平台的右侧的蓝色按钮,点击下载相应的安装包,如Android的apk文件;也可以点击二维码下边的Install按钮下载全部构建完成的安装包。

另外可以在模拟器上打开移动浏览器,进入PhoneGap Build服务,点击二维码下边的Install链接直接下载应用。

安装应用时会提示启用应用功能,可以看到因为没有告诉Build服务启用或禁用什么,默认开启了全部功能权限。

配置PhoneGap Build 应用

如果不配置PhoneGap Build,它会使用默认配置。PhoneGap Build使用config.xml文件配置,这个文件定义为W3C Widget Packaging的一部分,使用XML配置规范。

把config.xml文件同web应用内容打包成zip格式,服务会使用config.xml文件的属性设置和安全设置。CLI在创建应用时生成了一个config.xml,内容如下:

<>xml version&#61;"1.0" encoding&#61;&#39;utf-8&#39;?>
Hello World 4A Sample Apache Cordova application thatresponds to the deviceready event.Apache Cordova Team

上面配置内容仅有一些描述应用和关于应用选项的信息&#xff0c;你可以修改一下namedescription节&#xff0c;并和应用一起打包上传到PhoneGap&#xff0c;可以看到相应的变化。

因为要用在不同平台和各自的项目设置&#xff0c;实际上的config.xml文档要复杂的多&#xff0c;要配置多用于多个平台的设置&#xff0c;如程序图标、闪屏图像等&#xff0c;还要在使用PhoneGap API的地方配置安全设置。

PhoneGap Build支持大量插件&#xff0c;并且有支持开发者发布插件的能力&#xff0c;这些都需要在config.xml中描述。关于在conifg.xml选项的详细描述请参考&#xff1a;https://build.phonegap.com/docs/config-xml。

下篇步入“正题”&#xff0c;详细说说Cordova API。



推荐阅读
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  •  HybridApp在过去的两年中已经成为移动界的核心话题,但是作为一名Web开发者来说要如何站在移动互联网的浪潮之巅呢?是选择学习原生开发,研究Java、Object-C、C#等语言,还是 ... [详细]
  • 前后端分离,我怎么就选择了 Spring Boot + Vue 技术栈?
    前后端分离,我怎么就选择了 Spring Boot + Vue 技术栈? ... [详细]
  • Adobe系统公司(纳斯达克股票代码:ADBE)本周三宣布其Adobe数字营销套件的组件网络体验管理(WebExperienceManagement,WEM)解决方案 ... [详细]
  • 最近网上搜了一些资料,以前版本的有个安装包,但是最新的版本没有了,他是通过命令行安装并且创建App的,我主要是看的他的文档来 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • PhoneGap 介绍
    一、PhoneGap是什么1、PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发框架。2、它使开发者能够利用iPhone,A ... [详细]
author-avatar
小丁啊小丁
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有