Apache Cordova: 混合移动应用开发的强大框架






4.14/5 (8投票s)
本文的目的是使用一个最强大的开源框架:Apache Cordova,为移动平台提供混合移动应用程序开发方法。
目标
本文的目的是使用一个最强大的开源框架“Apache Cordova”,为移动平台提供混合移动应用程序开发方法。它将为我们提供一个现成的平台,用于在 Android、iOS、Windows、BlackBerry 等主要平台上创建和托管移动应用程序。
Apache Cordova – 历史
简史:PhoneGap 是由 Nitobi 公司启动的一个开源项目。一段时间后,Adobe 收购了 Nitobi,因为 PhoneGap 项目有来自 IBM、Salesforce 等顶级公司的许多主要贡献者,因此 Adobe 将 PhoneGap 的代码库捐赠给了 Apache 软件基金会 (ASF) 进行孵化。在 Apache 软件基金会 (ASF) 中,它被重新命名为 Apache Cordova。因此,目前 Apache Cordova 是进行开发和贡献的核心开源项目。Apache Cordova 现在是那些有兴趣为这个开源项目做出贡献的开发者的目的地。下图解释了它的历史。
什么是混合应用?
混合移动应用程序通常使用 HTML5、CSS3 和 JavaScript 等核心 Web 技术构建。混合应用始终托管在利用移动平台 WebView 的原生应用内部(**WebView 可以被视为一个无边框的浏览器窗口,配置为全屏显示**。)。混合应用可以将 HTML5 应用嵌入到轻量级原生容器中,结合了原生应用和 HTML5 应用的最佳(和最差)元素。Apache Cordova 帮助 Web 和移动开发者为多个平台构建世界一流的混合移动应用程序。
顶级混合应用:Amazon Appstore、Twitter、Apple App store、Instagram、Gmail、Uber、Linked-In 等。
什么是原生应用?
原生应用是专为目标移动操作系统开发的智能手机应用程序。
- 为 iOS 平台使用 Objective-C 或 Swift
- 为 Android 平台使用 Java
- 为 Windows 平台使用 .NET
顶级原生应用:Facebook、愤怒的小鸟等。
混合应用“或”原生应用?
我们可以根据以下标准功能比较混合应用和原生应用。此比较表将帮助 Web/移动开发者快速决定是为客户开发原生应用还是混合应用。
Gartner 对混合移动应用的看法
根据 Gartner, Inc. 的数据:
- Gartner 表示,到 2016 年,超过 50% 的移动应用将被部署为混合应用。
- 到 2017 年,25% 的企业将拥有企业应用商店来管理 PC 和移动设备上的公司批准的应用。
Gartner 的《2013 年魔力象限》
根据 Gartner《2013 年移动应用开发平台魔力象限》,Adobe 的 PhoneGap API 或 Apache Cordova 是该领域的市场领导者之一。
Gartner《2013 年移动应用开发平台魔力象限》如下图所示
- http://www.gartner.com/newsroom/id/2324917
- http://blog.mobiversal.com/latest-trends-in-enterprise-mobile-app-development.html
什么是 Apache Cordova?
Apache Cordova 可以从下面的工作流程图概念化。
我们知道 Apache Cordova 应用使用原生操作系统使用的相同 WebView。下面是相应平台的 WebView 类映射:
- 平台 iOS >> Objective-C UIWebView 类
- 平台 Android >> android.webkit.WebView
- 平台 WP7 >> WebBrowser
- 平台 WP8 >> WebBrowser 控件 (Internet Explorer 10)
- 平台 BlackBerry >> WebWorks 框架
Apache Cordova 架构
Apache Cordova 目录结构模板
+ HelloWorld
| +-- HelloWorld (The directory that contains the Cordova project)
| | +-- ... (Cordova directories and files )
| | +-- www (The directory of our application. )
| | (It's a classical web directory. )
| +-- node_modules (The Nodejs directory for modules )
| +-- src (The directory for our source code )
| | +-- html (HTML files )
| | +-- js (Javascript program )
| +-- Gruntfile.js (The build file for Grunt )
| +-- packages.json (The file that allow NodeJS to install all we need)
如何创建第一个混合移动应用程序?
下面是为 Android 和 iOS 平台创建第一个混合移动应用程序的步骤。
Create the Hybrid App
Go to the directory where you want to create your project, and run this command :
$ cordova create myApp com.test.app.myApp HelloWorld
Add the required Platforms ( **Android/iOS/Windows etc.**)
$ cd myApp
$ cordova platform add ios ( to add ios platform)
$ cordova platform add android ( to add android platform)
Compile and Build the hybrid App
$ cordova build ( default option, it will build all available platforms)
$ cordova build ios/android (choose any specific platform to build)
$ cordova prepare ios/android (choose any specific platform to prepare
$ cordova compile ios/android (choose any specific platform to compile)
Test or Run the App on an Emulator or Device
$ cordova emulate android (to emulate on android default emulator)
$ cordova emulate ios (to emulate on ios default emulator)
$ cordova run android (to run on default connected android device)
$ cordova run ios (to run on ios default connected ios device)
Apache Cordova 如何工作?
Step#1 : Include web code in a native app project:
- assets/www/js/, css/, images/, etc.
Step#2: Native code loads a URL to the web code through the device’s internal browser:
- Extend a CordovaWebViewClient
super.loadUrl( “file:///android_asset/www/LoginPage.html” );
Step#3: Apache Cordova exposes native device APIs through JavaScript:
- navigator.device.capture.captureImage( captureSuccess(), captureError(), [options] );
开始使用混合移动应用开发
我们需要以下工具才能使用 Apache Cordova 为移动平台开始混合应用开发。
集成开发环境 (IDE)
- 适用于 Android 的 IntelliJ 等 Java IDE 或 Jboss Developer Studio 或 Eclipse Mars
- 适用于 iOS 的 Xcode
移动平台 SDK
- Android SDK 23
- iOS SDK
Apache Cordova:Cordova 模块和插件可在以下网址找到:https://cordova.net.cn/plugins/
移动设备
- 推荐用于部署/测试
- 模拟器是替代方案,但并非 100% 真实的测试
入门指南
指南可在以下网址找到: https://cordova.net.cn/docs/en/5.4.0/index.html