《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译者注:指不同平台提供的打包或发布工具。

相关文章
|
4月前
|
移动开发 小程序 Android开发
基于 uni-app 开发的废品回收类多端应用功能与界面说明
本文将对一款基于 uni-app 开发的废品回收类多端应用,从多端支持范围、核心功能模块及部分界面展示进行客观说明,相关资源信息也将一并呈现。
182 0
|
9月前
|
存储 SQL 虚拟化
Omnissa App Volumes 4, version 2503 - 实时应用程序交付系统
Omnissa App Volumes 4, version 2503 - 实时应用程序交付系统
222 7
Omnissa App Volumes 4, version 2503 - 实时应用程序交付系统
|
6月前
|
小程序 安全 JavaScript
构建即时通讯APP内的小程序生态体系:从架构设计到技术实现-优雅草卓伊凡
构建即时通讯APP内的小程序生态体系:从架构设计到技术实现-优雅草卓伊凡
435 1
构建即时通讯APP内的小程序生态体系:从架构设计到技术实现-优雅草卓伊凡
|
11月前
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
731 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
6月前
|
Java Shell Maven
【Azure Container App】构建Java应用镜像时候遇无法编译错误:ERROR [build 10/10] RUN ./mvnw.cmd dependency:go-offline -B -Dproduction package
在部署Java应用到Azure Container App时,构建镜像过程中出现错误:“./mvnw.cmd: No such file or directory”。尽管项目根目录包含mvnw和mvnw.cmd文件,但依然报错。问题出现在Dockerfile构建阶段执行`./mvnw dependency:go-offline`命令时,系统提示找不到可执行文件。经过排查,确认是mvnw文件内容异常所致。最终通过重新生成mvnw文件解决该问题,镜像成功构建。
240 1
|
11月前
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
8949 80
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
6月前
|
存储 移动开发 监控
App Trace功能实战:一键拉起、快速安装与免提写邀请码的应用实践
App Trace系统通过一键拉起、快速安装和免提写邀请码三大功能,显著提升用户转化率、安装成功率和邀请注册率。结合深度技术实现与优化,助力公司用户增长,成为移动端核心基础设施。
|
8月前
|
搜索推荐 API UED
淘宝/天猫获得淘宝app商品详情原数据 API 返回值的应用
该API专注于商品信息整合与展示,提供基础信息抓取、多媒体内容整合等功能,助力实时同步商品数据,构建丰富的详情页。同时支持数据分析与市场洞察,包括销售趋势分析和竞品对比,优化库存与定价策略。此外,动态促销管理和个性化推荐系统可提升营销效果,而实时库存预警和评价数据可视化则显著增强用户体验,为用户决策提供透明依据,全面提升平台竞争力与用户满意度。
|
10月前
|
小程序
【04】微信支付商户申请下户到配置完整流程-微信开放平台移动APP应用通过-微信商户继续申请-微信开户函-视频声明-以及对公打款验证-申请+配置完整流程-优雅草卓伊凡
【04】微信支付商户申请下户到配置完整流程-微信开放平台移动APP应用通过-微信商户继续申请-微信开户函-视频声明-以及对公打款验证-申请+配置完整流程-优雅草卓伊凡
723 1
【04】微信支付商户申请下户到配置完整流程-微信开放平台移动APP应用通过-微信商户继续申请-微信开户函-视频声明-以及对公打款验证-申请+配置完整流程-优雅草卓伊凡
|
9月前
|
人工智能 开发框架 小程序
【一步步开发AI运动APP】二、跨平台APP AI运动识别方案介绍
本系列博文旨在帮助开发者从【AI运动小程序】迈向性能更优的【AI运动APP】开发。通过「云智AI运动识别」uni-app版插件,提供本地原生极速识别、精准姿态检测及运动计时计数功能,支持健身系统、线上赛事、学生体测、康复锻炼等多场景应用。插件无需云端依赖,一次付费永久使用,成本低且扩展性强。同时兼容uni-app与uni-app x框架,适合不同技术背景的开发者快速上手,助力抢占AI辅助运动市场。下篇将介绍插件引入,敬请期待!