PhoneGap开发指南(txt+pdf+epub+mobi电子书下载)


发布时间:2021-03-01 23:23:02

点击下载

作者:[英]AndrewLunny著

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

PhoneGap开发指南

PhoneGap开发指南试读:

前言

本书对PhoneGap进行了介绍。PhoneGap是一个用于移动设备应用开发的跨平台开源框架。PhoneGap可以让开发者仅使用一个代码库,就使用Web开发技术(HTML、CSS、JavaScript)为iOS、Android、BlackBerry以及其他众多平台开发native应用。

本书内容

第 1 章“安装 PhoneGap”,帮助读者解决 iOS、Android 及 Black Berry 多重平台开发环境搭建中常见的难点。学完本章,读者便可拥有一个可以构建 PhoneGap 应用程序的开发环境了。

第2章“在多个平台上构建和调试应用”,主要介绍如何利用第 1 章搭建好的环境快速高效地为多平台编写代码。本章还帮助读者尽早习惯利用桌面浏览器协助移动开发。

第3章“从移动网页到移动应用”,描述了PhoneGap应用程序设计与架构方面的改变,这些改变位于PhoneGap开发的最前沿。尤其是,读者将学到如何在不依赖Web服务器来完成绝大多数交互的情况下,编写一个PhoneGap程序。

第 4 章“管理跨平台代码库”,向读者介绍了如何使用常见的 Web 技术(包括特性检测和用户代理嗅探),去管理部署于多个平台的代码。

第 5 章“HTML5 API 和移动 JavaScript”,介绍了 HTML5 浏览器里一些新添加的JavaScript API,这些API 已普遍用于现代移动设备。本章还介绍了一些可用来管理代码的移动设备JavaScript库。

第6章“CSS3:转场、变形和动画”,介绍了一些可以在当前CSS实现中使用的一些新技术,这些技术可以用来增强PhoneGap应用程序的界面外观。

第7章“使用PhoneGap调用设备传感器”,介绍了如何使用PhoneGap的设备传感器功能来管理从PhoneGap程序中读取的位置与加速数据。

第8章“访问摄像头数据和文件”,介绍了如何利用PhoneGap的API管理对用户相册与相机的访问,并在程序中使用这些访问结果。

第9章“读写通讯录”,介绍了使用PhoneGap中的Contacts API处理用户设备中的本地通讯录,并在程序中加以利用。

第10章“PhoneGap插件”,介绍如何轻松扩展iOS、Android和BlackBerry的PhoneGap实现,使之可以访问任何本地功能,且不需要用到任何PhoneGap核心API。

第11章“离线运行:同步和缓存”,介绍了在使用少量服务器端代码的前提下,如何利用PhoneGap离线捕获数据,并在本地或远程对其进行管理。

附录 A,“部署到 iOS”,告诉读者如何从苹果公司获取开发者证书。该证书允许将你的应用从模拟器上架到应用商店。

阅读本书需要的知识背景

由于 PhoneGap 使用的是它所支持的每一个平台的本地功能,因此,如果想要将应用程序部署到哪个平台,就需要安装这个平台的本地SDK。

拿 iOS 来说,读者需要一台苹果 Mac 电脑。对于 BlackBerry,则需要一台 Windows 电脑,或者一个虚拟的Windows环境。Android的SDK则支持所有主流操作系统。

除了上文提到的那些,再加上一个Web浏览器(基于Webkit的浏览器更佳,如Safari或者谷歌的Chrome)和一文本编辑器便足矣。

本书面向的读者

本书主要面向未曾进行过移动Web或移动应用开发的中级Web开发者。阅读本书并不需要本地移动SDK的相关经验。

本书体例

在本书中,读者将会看到几个标题频繁出现。

为能清晰地讲解如何完成一个任务或步骤,本书使用:

行动时刻——标题

1 动作1

2 动作2

3 动作3

一个指令说明有时候非三言两语就能讲解透彻,此时便需要更多的解释说明。故一个指令说明有时后面会跟随着这些内容:

刚做了什么?

此标题解释读者刚完成的任务或指令的运行情况。

读者在本书中还可以看到其他用于辅助学习的提示,包括:

突击测验——标题

一般都是些简短的多项选择题,旨在帮助读者检验自己的理解程度。

一展身手——标题

此处一般设计了一些实用性较强的题目,可以帮助读者测试在本书中所学到的知识。

此外,读者还可以发现区分不同类型信息的多种文本风格。以下是这些风格的一些示例,以及对此风格所代表的含义的说明。

例如,代码解释性句子是“从你的FirstApp目录,运行模拟器。”

代码块则如下所示:

任何命令行输入或输出都以如下形式给出:

$ ant load-device

新术语与重要词语用粗体突出显示。读者可以从屏幕(例如菜单、对话框)上看到的文字,以如下形式表示:“为找出一个PhoneGap示例,按下黑莓键(有7个圆环,类似于B的那个),然后点击Downloads。”提示框中的警告或重要提示以如此形式出现。技巧与窍门则以这样的形式出现。

读者反馈

我们竭诚欢迎读者们的反馈。我们希望了解读者对本书的评价——你喜欢什么或不喜欢什么。读者的反馈对于我们找出本书对读者最为有用的部分是不可或缺的。

只需发送邮件到feedback@packtpub.com,便能把反馈传达给我们,提醒读者别忘了在邮件主题中写上书名。

如果你需要和期望我们出版某本图书,请通过网站www.packtpub.com里的SUGGEST A TITLE 表格给我们发送信息,或者发送邮件到feedback@packtpub.com。

若您是某一领域的专家,并有意向编写某本著作,请在网站www.packtpub.com/ authors上查阅我们的作者指南。

顾客支持

若读者已幸运地拥有一本 Packt 出版社出版的图书,我们还有一系列服务帮助读者从所购买的书籍中尽可能多地获取知识财富。

下载示例代码

读者可以利用自己的账户从 http://www.PacktPub.com 上下载到所有 Packt 图书的示例代码文件。若是从其他地方购买的本书,读者可以访问http://www.PacktPub.com/support并注册,代码文件便会直接以邮件形式发送给您。

勘误

虽然我们非常认真小心地审核本书的每一个细节,以确保本书内容的准确性,但错误还是在所难免。若读者发现书中存在小错误——可能是内容错误也有可能是代码错误——如果读者能将发现的错误告知我们,我们将感激不尽。这样做也可以减少其他读者的困扰,还可以帮助我们提高本书下一个版本的质量。若您发现了错误,请将它告知我们:访问http://www.packtpub.com/support,选择您的书籍,单击链接errata submission form,输入错误详情。一旦您提交的错误被确认,它会被采纳并上传到我们的网站,或添加到任何位于对应主题下勘误区域现存的勘误表。通过在errata submission form上选择对应的主题表格便可以查看所有现存的勘误表。

答疑

若读者对本书某些方面有任何疑问,请联系questions@packtpub.com,我们将竭尽全力帮助您解决它。  第1章安装PhoneGap

PhoneGap 其实是一套针对不同移动操作系统的项目模板集,它可以让我们忽略不同移动平台间 SDK 的差别,进而以统一的方式为不同的平台开发应用。对开发人员来说,学习 PhoneGap 的最大障碍是 PhoneGap 入门——安装不同平台的SDK、搭建开发环境,并顺利运行项目模板。在本章中我们将学习以下内容。

在本章中,我们将:

◆ 安装iOS 开发所需的Xcode和iOS SDK;

◆ 安装Android SDK 并安装模拟器;

◆ 搭建BlackBerry Web Work的开发环境;

◆ 为以上3个平台构建PhoneGap应用程序。

OK,让我们来跨越第一关……1.1 操作系统

虽然我们已在序言中提到过PhoneGap 需要遵循的规则,但这里还要再强调一下 :如果供应商只为单一的操作系统发布SDK,那么你必须使用该操作系统来构建和部署你的应用程序。

PhoneGap在各平台上的相关细节如下所示。

◆ 可以在任何主流的桌面操作系统上(Windows、Mac OS X 或Linux)开发 Android和HP webOS应用程序。

◆ 可以在任何操作系统上开发Symbian Web Runtime 应用程序,但只能在Windows上运行模拟器。

◆ 类似的还有BlackBerry开发——其SDK 可以安装在Windows或Mac OS X 上,但是,在本书编写之际,模拟器只能在Windows上运行。

◆ Windows Phone 7 SDK 只能运行于Ubuntu Linux 10.04 及以上版本。这当然是开玩笑的!

◆ 而且,你肯定注意到,iOS SDK要求最新版本的Mac OS X 10.6(根据OS X 的最终用户许可协议,你还需要一台Mac电脑)。

实事求是地讲,移动开发的最佳选择是弄一台Mac电脑,并在可引导的独立分区上安装Windows,或使用Parallels 或者VMWare Fusion 进行虚拟化。根据苹果公司的法律条款,你不可以在非苹果硬件上运行Mac OS X;如果你坚持使用Windows电脑,那么你就只能为iOS平台之外的每个平台创建应用。

如果你觉得购买一台新电脑有点贵,那么你可能也不会想了解[1]“如何购买一打手机”。 1.2 所需工具

这里是一些你会用到的重要工具。

◆ git:git是世界上最好的东西(你可以不这么认为)。更确切地说,git是一个分布式的版本控制系统,一个管理软件开发的极好工具。用户可以很容易地使用git进行PhoneGap开发,git 也是进行 PhoneGap 开发的最好方式。你可以在 http://git-scm.com/找到安装文件和使用信息。

对Mac和Linux用户来说,我建议直接在终端应用程序使用git。如果你使用的是Windows,则可以考虑使用MsysGit,在http://code.google.com/p/msysgit/可以找到。

◆ ant:也就是Apache Ant,这是一个基于Java的构建工具,与make类似。但与make不同的是,ant任务是通过XML进行指定的。在Java社区中,ant是一个非常流行的工具。我们将广泛使用ant来创建Android和BlackBerry应用。你可以从http://ant.apache.org/上获得对应自己系统的ant,在那里有最新且详细的安装说明。

同时,要确保在你的环境变量中正确设置了 ANT_HOME——这将关系到 PhoneGap 的ant脚本是否可以正常运行。

◆ Ruby:droidgap 构建工具是基于Ruby的。Ruby是一门使用广泛的编程语言。如果你运行的是Mac OS X或Linux,则应该安装Ruby。符合你系统的最新Ruby发布版安装包可在http://www.ruby-lang.org/en/downloads/上下载。1.3 使用iOS入门

那么让我们现在开始——在iOS上创建应用程序。首先,我们要在Mac上安装开发人员的工具,随后我们将创建PhoneGap应用程序并运行。1.4 行动时刻——在模拟器上运行应用程序

让我们先从苹果 iOS 开发中心开始——https://developer.apple.com/devcenter/ios/index.action。既然您购买这本书,那么您一定很聪明,肯定能成功注册一个账户。接下来该做什么呢?

1.下载最新的SDK(编写本书时是4.3)、XCode以及iOS包(见图1.1)。图1.1

2.安装文件有3GB,下载期间你可以趁机去喝杯咖啡。

3.运行安装包!

4.启动Xcode,单击New Project(见图1.2)——选择iOS 和View-based Application。当出现提示时,将应用程序命名为FirstApp。图1.2

5.图1.3显示了最终的应用程序在Xcode中的样子。图1.3

6.在菜单栏上单击Build and Run ——你会看到屏幕上运行了iPhone模拟器。在模拟器上,如果你跳转到主屏幕,你会看到你的应用图标(见图1.4)。图1.4

7.恭喜你,你已是一名iOS开发者了!同时,你也已经具有了使用PhoneGap编写iOS应用的基础。

刚做了什么?

我们刚刚编写了一个iOS应用程序!

好吧,实际我们还没有编写任何代码——也许项目标题可以算作代码,但这有点夸张。但是如果你到了安装Xcode并运行iPhone模拟器这一步,那么剩下的步骤也就很简单了。

还有个棘手的地方是部署新的应用程序到真正的 iOS 设备上。如果你需要这方面的帮助可以参看附录A;你也可以上http://developer.apple.com查询苹果的文档,获取最新的相关细节。1.5 安装PhoneGap-iPhone

我们应该先称之为PhoneGap iOS。以前的编程谚语曾说,在计算机科学中只有两个困难的问题:一个是因错误而退出的缓存失效,另一个是命名事物。

你会发现上面这两个困难都和PhoneGap无关,同时使用PhoneGap是很简单的。让我们开始吧。1.6 行动时刻——PhoneGap-iPhone的Hello World

1.打开 OS X Terminal,并切换到一个你事先准备好的文件夹中。同时,确保已经安装了 git,并已经添加到PATH 环境变量中。

2.输入如下命令(见图1.5):

$ git clone git://github.com/phonegap/phonegap-iphone.git图1.5

3.现在切换到对应目录,生成安装程序并运行它:

$ cd phonegap-iphone

$ make

$ open PhoneGapLibInstaller.pkg

4.你会看到PhoneGap图形化安装程序(见图1.6)。按照屏幕上的说明——安装过程占用至少1MB的磁盘空间并且不需要管理权限,所以你应该不会遇到任何错误。

5.如果你已经打开了Xcode,就退出并重启它。因为只有重新启动,才能看到新的PhoneGap项目模板。图1.6

6.从新打开的 Xcode 中,再次选择 New Project,这一次在 User Templates 区域选择PhoneGap,并从主框中选择PhoneGap-based Application。将新项目命名为FirstGapApp(或者其他你觉得适合的名字)。你会看到熟悉的Xcode项目视图,左边是www目录(见图1.7)。图1.7

7.打开左窗格中的www/index.html文件。向下滚动到onDeviceReady的JavaScript函数,并在其中添加以下代码:

alert('Hello PhoneGap!');

8.单击Build and Run 来查看结果(见图1.8)。图1.8

9.现在你的JavaScript代码已经执行了,并且你的PhoneGap应用程序也准备要运行了。1.6.1 刚做了什么?

我们实现了第一个PhoneGap应用程序的启动和运行。一个完全由HTML、JavaScript和CSS控制的应用程序,原生地运行在移动平台上。单凭这个我们应该给自己鼓鼓掌了!

看看 Xcode 窗口左侧并与我们在 FirstApp 中看到的对比一下,我们可以初步了解PhoneGap是如何工作的。以下几点需要着重注意。

◆ 在FirstApp 中有一个叫做www的蓝色文件夹,旁边有很多类似的黄色文件夹。在Xcode 中,蓝色文件夹在文件系统中是一个与你项目捆绑在一起的目录,而黄色文件夹是包含项目源代码的虚拟目录。

清楚这点特别重要,当 PhoneGap 源文件作为被捆绑的文件时,在每次应用程序编译时是不会自动刷新的。如果你想在模拟器或设备中刷新你的应用程序,那么你需要先执行Clean操作(见图1.9)。图1.9

◆ 在 FirstGapApp Xcode 项目的主体部分下面还有一个蓝色 Xcode 项目,名为PhoneGapLib.xcodeproj。这是由安装程序安装的静态PhoneGap库,与FirstGapApp关联。如果你愿意,可以双击PhoneGapLib.xcodeproj项目并编辑PhoneGap程序库——这就是开源程序之美。但现在先别这么做。

◆ 你可能已经注意到了,www 文件夹中只包含 index.html,但它在第 15 行需要一个名为 phonegap.js的文件。这个 JavaScript文件对于PhoneGap开发不是严格必需的,但它可以让你调用所有 PhoneGap API。默认情况下,当你构建应用程序时它自动生成。

在基于PhoneGap的Xcode应用程序和正规的基于视图的iOS应用程序之间还有一些其他差异,但我们会在适当的时候介绍这些。让我们来运行一下我们的iPhone应用程序,然后就进入到下一个平台。1.6.2 突击测验——iPhone上的PhoneGap基础

1.PhoneGap资源文件(HTML、JavaScript和CSS)位于Xcode项目何处?

a.项目根目录中

b.phonegap文件夹中

c.www文件夹中

2.如何重命名PhoneGap的iOS应用程序?

a.在index.html中修改标签

b.重命名index.html为SomeThingNew.html

c.编辑Application-Info.plist文件

3.alert('Hello PhoneGap!')代码调用了什么函数?

a.iOS网页视图中的标准alert函数

b.定义在phonegap.js中的alert函数

c.PhoneGap关联的原生Objective-C通知API1.7 使用Android入门

Google的Android操作系统在许多方面都与iOS相对立:开放而不是封闭,分散而不是集成。对于开发环境也是如此——Android与iOS[2]相比虽然没那么官僚 ,但还是略显粗糙。开发环境的说明

公元前2世纪,罗马剧作家德伦西写道:“Homo sum, humani nihil a me alienum puto; ”意思是:“我是人,人类之事我都关心。”我也觉得如此,但当我熟悉Eclipse IDE 时就改变看法了。

Eclipse IDE中具有专门用于进行Android和BlackBerry开发的插件,它们可以在各平台上与PhoneGap兼容。这些插件最大的优点就是辅助Java开发,然而,这不是使用 PhoneGap 开发的人的主要关注点。任何文本编辑器都可以用来开发 HTML、JavaScript和CSS。

放心吧,如果Eclipse是你的首选开发环境,所有针对这两个平台的内容都适用于Eclipse。1.8 行动时刻——运行SDK

尽管你可以使用Eclipse的ADT插件来开发Android应用,就如同iOS使用XCode,但Android不依赖于某个特定的IDE,而iOS 仅能使用Xcode。另外,还有IntelliJ IDEA 的Android插件可用。对于用PhoneGap开发来说,这是个福音:一旦设置了基础的SDK,我们就可以直奔PhoneGap应用程序。现在就让我们开始,做个好东西出来。

1.从http://developer.android.com/sdk/index.html下载最新的SDK包(编写本书时是r11),如图1.10所示。图1.10

2.解压SDK压缩包,然后将该SDK路径添加到操作系统的PATH环境变量中。

3.在Windows中运行SDK and AVD manager,运行SDK中的Setup.exe程序,或者在命令提示符中输入android(见图1.11)。图1.11[3]

4.安装一些开发包 !在左侧选择Available Packages,并点击需要的开发包。你会需要SDK Platform、Google API,以及与打算安装的Android API版本相对应的文档和最新的API工具。建议安装API 8的2.2版本。2.3版本的模拟器在运行PhoneGap时会有bug,并且以后的版本主要是针对平板电脑的。提前提醒下:下载这些包,需要花上一段时间。

5.现在我们要创建AVD。与iOS 不同,Android SDK 没有提供默认的模拟器,所以我们需要创建一个(这样做的理由有很多,但每一个都不充分)。在左侧选择 VirtualDevices,然后单击右侧的New。

6.下面的设置由用户决定,但这里有一些建议:

获取最新发布的Google API。除了开源Android的API,Google API 也让你可以调用Google提供的专有服务。大部分移动设备都可以使用这些API。但中国移动是个特例,它不可以使用Google API。如果你为中国市场开发,那么就只能使用Android API。WVGA800 (480像素 × 800像素)是与之相配的分辨率。

7.SD卡至少要设置几百兆——在图1.12所示的菜单中你可以找到:图1.12

8.在列表中选择新的AVD并单击Start(如果屏幕看起来很奇怪,当出现提示时就调整屏幕大小——我觉得8~10英寸左右可以得到一个很好的尺寸)。这会需要一段时间来启动,在此期间,你可以阅读操作系统的源代码,查看Google的openness/beneficence/omniscience(见图1.13)。图1.13

它可能不是很漂亮,但你可以阅读源代码。1.8.1 刚做了什么?

相较使用iOS入门这里有点隐晦,但我们所做的事情其实与先前所做的没有什么两样——架设SDK并运行,以及启动模拟器。

有件事情你需要注意,针对Android平台不同于针对iPhone设备,甚至iPhone、iPodTouch以及iPad系列设备。Andriod平台的产品,没有统一的屏幕分辨率、操作系统版本或我们可使用的存储空间容量,并且SDK工具无法让我们容易地创建一个模拟器(比如HTCDesire手机)来表示。我们需要根据自己的判断去找出最适合我们应用程序的模拟器。

直接在设备上运行应用程序是了解程序如何工作的最佳方式,这比什么都重要。幸运的是,在Android上部署比在其他将深入学习的平台上部署更容易。因为可以通过USB部署应用:

◆ 在你的Android 设备上打开Settings。

◆ 选择Applications。

◆ 选中Unknown sources,安装非Market应用程序。

◆ 选择Development。

◆ 选中USB desugging。

如果你打算好好做个Android开发,e强烈建议购买一部Android手机用于开发——在http://google.com/phone上可以找到适合的设备。如果在你的区域可以买到HTC的Nexus one,我推荐你买它。你也可以从Android Market(http://market.android.com)购买一部Android手机,但你需要一个开发人员账户,这要花费25美元。虽然Android模拟器的体验让人沮丧,但是部署到手机的过程很顺畅,于是造就了这个很好的方法。

虽然我们还没有任何应用程序,但很快就会有的。1.8.2 PhoneGap Android

Android是继PhoneGap iPhone之后第二个成熟的PhoneGap平台,同时开发过程也十分精练。为了避免混淆,我们将着重说明两个相关但又不同的PhoneGap Android部分:

◆ PhoneGap Library 或Phonegap.jar:关联PhoneGap API 和Android WebView的Java类库,并使用那个WebView启动一个应用程序。

◆ Droidgap:一个基于Ruby的生成器或工具,用于创建和部署PhoneGap Android项目。

Droidgap因Android开发过程的艰辛而诞生(至少是部分)。它试图将Android开发中很多繁冗步骤变得流畅、强大。但目前,它还很脆弱,所以要感谢你的耐心。1.9 行动时刻——PhoneGap Android的Hello World

1.首先,确保已设置了所有依赖项:ant、git和Ruby都已经加入PATH环境变量。可以查看本章前面的内容进行设置。

2.让我们像phonegap-iphone一样,在合适地方拉下git副本:

$ git clone git://github.com/phonegap/phonegap-android.git

3.下一步有点麻烦,所以先忍着我点。确保你可以访问bin/droidgap中的Ruby文件。要么你将bin/droidgap加入到PATH环境变量中,要么你可以直接访问到(如下面的截图)。

4.切换到example目录,运行droidgap create,然后切换到example_android目录(我再次用图来解释,见图1.14)。图1.14

5.构建和安装应用程序(这需要一个运行着的模拟器或一个连接着的设备):

$ ant debug install

6.在AVD或真实设备上,查看你的第一个PhoneGap Android 项目(见图1.15)!图1.151.9.1 刚做了什么?

使用一个不像我们想象的那么优雅的PhoneGap Andriod命令行工具生成了一个用于演示PhoneGap功能的示例程序。

droidgap create 命令是目前从一个给定的客户端资源文件集,创建样例PhoneGapAndroid应用程序最流畅的方式。然后我们可以使用预定义的Ant任务来构建应用程序本身和直接安装到我们的虚拟或物理设备上。

作为一名开发人员,PhoneGap Android 工具让你进一步脱离Java实现细节,同时可以专注于相关的客户端技术。1.9.2 PhoneGap Android应用程序中到底有什么?

droidgap应用程序创建过程的一个副作用是可能错过应用程序结构本身,iOS开发中使用Xcode是不会这样的。图1.16是项目内容的样子:图1.16

一些注意事项:

◆ AndroidManifest.xml 相当于 PhoneGap iPhone 上的全局设置 Application-Info.plist,和你的应用程序包名一样,都放在这里以及res/values/strings.xml中。

◆ PhoneGap代码在assets/www中,不只是www中。

◆ 有3个基于目标屏幕DPI 的icon.png 副本放在res文件夹中(这与iOS 相同,只是目录结构不同)。Droidgap只是在每个位置复制相同的文件,但在准备提交应用程序到Android Market时可以更改这个。

◆ 由于本质是Java,因此应用程序的限定名(比如,com.phonegap.example中的example)必须是Android的main activity[4]名称 。你应该知道AndroidManifest必须和你的目录结构相匹配,否则就会出问题,虽然这有悖于“我们尽量避免单调乏味”的原则。1.9.3 一展身手——深入Android

看看其他的Android命令行工具——尤其是adb logcat和adb shell。Android显然比iOS操作系统开放得多,但你可以用它来做哪些酷的东西呢?

如果你熟悉Ruby 编程语言,看看droidgap 的源代码(在phonegap-android git 代码库的lib目录中)。看看你是否能明白它究竟是做什么的,以及是如何工作的。1.10 使用BlackBerry Web Works入门

BlackBerry,是我们关注的三大移动平台中最古老、最庞大的一个。

在PhoneGap 大事记中(两个月前的),在运行 RIM 的 BlackBerry OS 4.2 及更新版本的设备上 PhoneGap 通过 BlackBerry JDE Component Pack 支持了 BlackBerry。虽然代码仍然可用,但它已经被弃用了。老实说,这对于实现它的PhoneGap程序和使用它的浏览器来说都是一场噩梦。在一些比较古老的PhoneGap维基上,你可以看到这个恐怖的事实。

自BlackBerry OS 5.0起,有一个更好的方式——BlackBerry Web Works SDK。基于W3C 的网络挂件规范,它很好地与 PhoneGap 契合,BlackBerry Web Works 让 PhoneGapBlackBerry从最慢的主流PhoneGap平台变成了最快的平台之一。

与各平台以及一般的Web开发一样,你仍然需要慎重对待JavaScript和CSS的支持。尤其当你选择在运行版本低于5.0的设备上工作时,因为它的内嵌浏览器相当差。

在5.0之上,操作系统为6.0 的设备(当前只有BlackBerry Torch)挂接了一个可靠的基于WebKit的浏览器。1.11 行动时刻——第一个PhoneGap BlackBerry应用

最重要的是,(目前)运行BlackBerry模拟器,你需要在Windows上运行——如果你从本章开始一直跟着做到现在,那么现在你可以不再使用Mac了。或重启进入其他任何可以工作的分区。

1.让我们先从 http://na.blackberry.com/eng/developers/browserdev/widgetsdk.jsp下载SDK。

2.现在的你应该很熟悉这些了,这里将运行SDK安装程序。需要注意的一点是,你最好安装到C:/,而不是C:/Program Files/;因为当运行ant脚本时,这可以避免一些权限问题。

3.复制PhoneGap 代码库(在Windows 上,我们使用Git bash 程序来运行git——也可以选择其他类似的程序)(见图1.17):

$ git clone git://github.com/phonegap/phonegap-blackberrywebworks.git图1.17

4.与PhoneGap Android 一样,我们将使用ant来生成我们的示例应用程序(见图1.18):

$ ant create -Dproject.path="C:\Development\FirstApp"图1.18

5.如果你运行的是 Windows 32 位版本,那么你需要编辑 FirstApp 目录下的project. properties文件,修改bbwp.dir变量指向SDK 的安装路径。在旧版本的Windows上,ant脚本比较容易出问题,所以要确保正确引用WebWork Packager。

6.在FirstApp目录下,启动模拟器:

$ant load-simulator

如果你确定代码都没有问题,你也可以在设备上运行你的应用程序:

$ant load-device

7.会启动一些进程——BlackBerry 模拟器和 Mobile Data System ConnectionServer(MDSCS)。模拟器是自解释的,但 MDSCS 对于模拟器进行网络请求来说是必需的(见图1.19)。图1.19

我不清楚你想了解多少关于此的细节,但这里:在一个BlackBerry设备上,所有的网络流量都是通过RIM的服务器代理的。在BlackBerry模拟器上,所有网络流量都是通过本地服务器代理的。据说,如果你关闭服务器,应用程序会悄悄地失败,当你睡觉的时候,[5]RIM的忍者军团就会攻击你。

8.无论如何,现在模拟器运行起来了。找到PhoneGap示例,单击BlackBerry按钮(像B一样的带有7个圈的按钮),然后单击Downloads(见图1.20)。图1.20

现在应该看到示例应用程序的图标了(见图1.21):图1.21

9.下一步就是启动应用程序。我敢肯定你可以做到(见图1.22)。图1.221.11.1 刚做了什么?

通过使用PhoneGap,我们又在另一个移动平台上运行了一个应[6]用程序。

现在你应该更熟悉了——我们使用PhoneGap工具来生成了一个包含JavaScript引用所有PhoneGap API 的示例项目,然后,我们只需要关心编写和重写HTML、JavaScript和CSS。

我们看一下 BlackBerry Web Works 的 PhoneGap 应用程序结构,一切是那么的熟悉(见图1.23):图1.23

我们再次看到了一个www目录,它包含了我们的index.html和phonegap.js文件, build.xml (就像 Android 一样)用来运行 ant 任务,一个外部库( www/ext/ phonegap.jar)关联原生的PhoneGap API,以及一个定义应用程序全局设置的XML配置文件(www/config.xml)。

尽管这些平台上的浏览器环境存在很大差别(在本书的其余部分我们将会涉及这些痛苦的细节),但是我们还是可以站在更高的高度看PhoneGap在这些平台上的共性。1.11.2 BlackBerry代码签名

代码签名是我之前一直没有说的东西——和Apple的iOS一样,在安装应用到你(他们)的设备之前,RIM会要求你为应用程序签名并通过他们审核。这是一个麻烦的过程,而且此时我们也都累了,下面给出概述。

1.到https://www.blackberry.com/SignedKeys/网站。

2.填写表格。

3.允许RIM扣除你20美元。

4.经过一星期左右,按照他们给你发的电子邮件说明来操作。

如果说为什么喜欢Apple。他们收了你的钱,至少效率会高一些。1.11.3 一展身手——跨平台带来的乐趣

在本章中,我们看到了 PhoneGap 如何提供相似的应用结构,你可以部署这些应用到多种移动平台上。更进一步尝试——你能将所有3个平台关联到同一个开发目录上吗?每个平台需要独立的phonegap.js副本吗?

尝试编辑每个平台的示例应用程序。你如何在每个平台上删除、重建并重新安装应用程序?一定要让自己熟悉每个平台的文档,如果在我们继续学习本书时遇到了什么困难,我们可以尝试搞一个授权了的SDK。1.12 小结

这里还是有很多乐趣的。可惜移动开发的发展总伴随着笨重的SDK,要不是这样,本章就应该讲解那些PhoneGap致力于解决的问题了。所幸从现在起,一切都会变得顺畅。

具体来说,本章我们学习了:

◆ 创建iOS 的PhoneGap应用程序并运行;

◆ 为Android做同样的事;

◆ 再次为BlackBerry WebWorks做同样的事。

我们还讨论了如何自动化你的工作流程,在可以用ant的地方用ant任务。我们开始把目光投向构建跨平台的应用程序,而不是针对某一个平台然后移植程序——现在,我们已经安装了所有这些SDK,所以我们以后不会再在这些SDK的安装上多花时间。

在接下来的章节中,我们将以本章内容为基础,向我们的移动应用中添加更多的功能。下一章我们将看到如何在没有PhoneGap的情况下构建移动应用来获得最佳效果。

注 释

[1]. 译者注:这里是作者开玩笑,指为在不同平台上进行测试而购买不同手机。

[2]. 译者注:这里指iOS 对开发环境的限制和管束过多。

[3]. 译者注:Android 的库文件、模拟器等。

[4]. 译者注:Android 应用程序中,第一个运行的界面。

[5]. 译者注:作者开的玩笑,用以说明BlackBerry 非常依赖于代理服务器。

[6]. 译者注:指在BlackBerry 上又运行了一个PhoneGap 程序。  第2章在不同平台上构建和调试应用程序

在第1章我们巧妙地介绍了PhoneGap要解决的问题:不同移动平台间软件和环境的不兼容。从这里开始,事情会变得顺畅很多;我们将用一些我们熟悉的开放网络标准来开发,同时将开始真正编写一些应用程序。

本章中,我们将学习:

◆ 如何使用桌面浏览器开发简单的移动设备应用程序;

◆ 在桌面浏览器中调试JavaScript;

◆ 把基于Web浏览器的项目移植到移动平台上;

◆ 在我们的原型应用程序中使用一些原生的PhoneGap调用。

那么我们应该做个怎样的应用呢?

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载