《PhoneGap精粹:构建跨平台的移动App》——1.6节构建PhoneGap应用程序

简介:

本节书摘来自异步社区《PhoneGap精粹:构建跨平台的移动App》一书中的第1章,第1.6节构建PhoneGap应用程序,作者 【美】John M. Wargo,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.6 构建PhoneGap应用程序
PhoneGap精粹:构建跨平台的移动App
如果你有款完整的web应用程序,无论其中是否使用了PhoneGap API,都必须被打包成原生应用程序,才能在设备上运行。PhoneGap所支持的每个移动设备平台都有其自己的特有的打包工具或编译成原生应用程序的工具。为了给每个支持的移动平台构建PhoneGap应用程序,应用程序的web内容(HTML、CSS和JavaScript以及其他所需的文件)必须被添加到每个平台对应的应用程序项目中,然后使用对应平台的特有工具构建。

这个过程中有挑战的是,每个移动平台使用完全不同的工具,同时对应的应用程序项目使用不同的配置文件和不同的文件结构。更糟的是,不同的移动平台有不同的PhoneGap JavaScript库。虽然调用API的方式每个平台是一样的,但是用于和不同平台(比如Android、BlackBerry或iOS)交互的内部JavaScript代码是不同的。

如你所见,开发人员没有可以直接配置开发系统的方法,所以他们会创建一个项目,同时使用这个项目去给多个平台创建PhoneGap应用程序。

开发人员所要做的就是为某个平台(比如Android)创建一个项目,放入相应的web内容,然后使用Google提供的工具打包并测试应用程序。一旦该应用程序可以在Android上正常工作,你就可以将对应的web内容复制到另一个新的Xcode项目(针对iOS应用程序)中,或者BlackBerry Web Works项目中,并重复前面的过程1。图1-3揭示了这个过程。虽然该图并没有包含PhoneGap支持的所有平台,但用来说明已经够了。


40589ff16f04d9385494a7c541d001ff9c4f4ba3

如果你觉得上面说的还不够糟糕的话,那么你觉得这个呢?用于为不同平台创建PhoneGap项目的工具2会将PhoneGap的JavaScript库放在不同的位置。比如,在BlackBerry的项目中,PhoneGap的JavaScript库放置于/JavaScript目录中,在iOS中则放在项目的根目录中。当把应用程序的web内容从一个移动平台复制到另一个时,你必须调整代码,因为JavaScript资源文件可能在不同的位置。

一些平台,比如webOS,在web项目中首先需要加载他们自己的JavaScript框架库(名为mojo)。所以,这里你还要注意webOS的版本。

这意味着,为了能在不同移动平台上构建移动应用程序,开发人员必须为每个平台安装完整的开发环境,并且手动复制和调整不同项目间的web源文件。

本书的第2部分,讲解了如何配置每个PhoneGap支持平台的开发环境。

幸运的是,我们有更好的方法去解决上面的问题。PhoneGap项目团队已经致力于搭建一个基于云技术的为PhoneGap应用程序打包的服务了,名为PhoneGap Build,如图1-4所示。对PhoneGap来说,该服务会极大地降低开发环境带来的复杂性。


4918b5c5842d838dc43c57b123b92bf18e79ef3d

使用PhoneGap Build,开发人员要创建一个名为config.xml的配置文件,该文件用来描述移动应用程序的设置。该文件的格式是根据W3C的Widget规范(www.w3.org/TR/widgets)定义的。该配置文件和应用程序的web内容(应用程序的HTML、CSS和JavaScript文件)会被上传到PhoneGap Build服务器上,并且被打包成不同平台的原生移动应程序。使用普通的桌面浏览器就可以使用PhoneGap Build。

PhoneGap Build可以从多种途径载入PhoneGap项目,比如,.zip文件、从Git库(http://git-scm.com)或svn库(http://subversion.apache.org)获取。开发人员甚至可以将他们的PhoneGap项目存放在PhoneGap官方的Git库中。在第9章中,我们会详细描述PhoneGap的构建过程。

1译者注:指打包并测试。
2译者注:指不同平台提供的打包或发布工具。

相关文章
|
16天前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
|
4天前
|
监控 安全 Apache
构建安全的URL重定向策略:确保从Web到App平滑过渡的最佳实践
【10月更文挑战第2天】URL重定向是Web开发中常见的操作,它允许服务器根据请求的URL将用户重定向到另一个URL。然而,如果重定向过程没有得到妥善处理,可能会导致安全漏洞,如开放重定向攻击。因此,确保重定向过程的安全性至关重要。
14 0
|
2月前
【Azure Logic App】在逻辑应用中开启或关闭一个工作流是否会对其它工作流产生影响呢?
【Azure Logic App】在逻辑应用中开启或关闭一个工作流是否会对其它工作流产生影响呢?
|
2月前
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
2月前
|
Android开发 iOS开发 C#
Xamarin:用C#打造跨平台移动应用的终极利器——从零开始构建你的第一个iOS与Android通用App,体验前所未有的高效与便捷开发之旅
【8月更文挑战第31天】Xamarin 是一个强大的框架,允许开发者使用单一的 C# 代码库构建高性能的原生移动应用,支持 iOS、Android 和 Windows 平台。作为微软的一部分,Xamarin 充分利用了 .NET 框架的强大功能,提供了丰富的 API 和工具集,简化了跨平台移动应用开发。本文通过一个简单的示例应用介绍了如何使用 Xamarin.Forms 快速创建跨平台应用,包括设置开发环境、定义用户界面和实现按钮点击事件处理逻辑。这个示例展示了 Xamarin.Forms 的基本功能,帮助开发者提高开发效率并实现一致的用户体验。
100 0
|
2月前
|
存储 XML Linux
深入理解操作系统:进程管理与调度策略探索安卓应用开发:从零开始构建你的第一个App
【8月更文挑战第28天】在数字世界里航行,操作系统是掌控一切的舵手。本文将带你领略操作系统的精妙设计,特别是进程管理和调度策略这两大核心领域。我们将从基础概念出发,逐步深入到复杂的实现机制,最后通过实际代码示例,揭示操作系统如何高效协调资源,确保多任务顺畅运行的秘密。准备好了吗?让我们启航,探索那些隐藏在日常电脑使用背后的奥秘。 【8月更文挑战第28天】在这个数字时代,拥有一款自己的移动应用程序不仅是技术的展示,也是实现创意和解决问题的一种方式。本文将引导初学者了解安卓开发的基础知识,通过一个简单的待办事项列表App项目,逐步介绍如何利用安卓开发工具和语言来创建、测试并发布一个基本的安卓应用
|
2月前
|
Java 程序员 Android开发
探索安卓开发:构建你的第一个App
【8月更文挑战第27天】在数字化时代的浪潮中,移动应用成为人们生活不可或缺的一部分。对于渴望进入软件开发领域的新手而言,掌握如何构建一款简单的安卓App是开启技术之旅的关键一步。本文旨在通过浅显易懂的语言和步骤分解,引导初学者了解安卓开发的基础知识,并跟随示例代码,一步步实现自己的第一个安卓App。从环境搭建到界面设计,再到功能实现,我们将一同揭开编程的神秘面纱,让每个人都能体会到创造软件的乐趣。
|
2月前
|
安全 前端开发 网络安全
【Azure App Service】访问App Service应用报错 SSL: WRONG_VERSION_NUMBER
【Azure App Service】访问App Service应用报错 SSL: WRONG_VERSION_NUMBER
103 0
|
2月前
|
存储 Linux 网络安全
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
|
2月前
|
开发框架 前端开发 JavaScript
【Azure App Service】.NET应用读取静态文件时遇见了404错误的解决方法
【Azure App Service】.NET应用读取静态文件时遇见了404错误的解决方法