1 cordova 简介
Apache Cordova (phonegap的核心)是一套开发跨平台移动应用的框架。提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript 访问原生的设备功能,如摄像头、麦克风等。
Cordova还提供了一组统一的JavaScript类库,以及为这些类库所用的设备相关的原生后台代码
cordova官网
二 ionic简介
Ionic 是一个用HTML, CSS 跟JS 开发的一个用于移动设备的web app 前端开发框架,采用 Sass与AngularJS 开发。提供了一系列的UI组件,提供数据的双向绑定,(基于cordova之上)
步骤建立项目请参考官网,具体UI控件使用等详情请参考教程
官网 http://ionicframework.com/getting-started/
教程 http://www.runoob.com/ionic/ionic-tutorial.html
双向绑定:即从界面的操作能实时反映到数据,数据的变更能实时展现到界面。 Angularjs采用的模式,MVVM框架结构中的view和viewmodel。
例子
<div ng-controller="CounterCtrl">
<span ng-bind="counter"></span>
<button ng-click="counter++">increase</button>
</div>
function CounterCtrl($scope) {
$scope.counter = 1;
}
三. 项目结构
具体js
(1)config.xml
cordova的应用程序都依赖于一个共同的 config.xml 文件,提供有关应用程式的信息,并制定参数影响它如何工作
以下的配置元素出現在顶级config.xml类,并在所有受支援的cordova平台支援:
- <widget>元素的 id 属性提供了应用程式的反向域识别码和version主要/次要/修补程式符号表示其完整版本号。小部件标记也可以指定替代版本,即 versionCode 为安卓系統和CFBundleVersion 的 iOS 的属性。
- <name>元素指定应用程式的正式名称,它出现在设备的主画面上和在应程式商店页面內。
- <description>和 <author> 的元素指定的详细资料和联系信息,
- 可选的 <content>元素在顶级 web 目录中定义应用程序的起始页。默认是 index.html ,其中通常出現在一个专案中的顶级www目录。
- <access>元素定义应用程序能够与之进行通信的外部域的集。如上图所示的默认值允许访问任何服务器。如果白名单文件做修改的话可以限制网站
(2)Plugin 插件/外挂机制
插件是代码的一个套装软体注入,允许在应用程序呈现能在本机平台运行通信的cordova web 视图。 插件提供对基于 web 应用通常不可用的设备和平台功能的访问。
cordova API 的所有主要功能基本都是使用插件机制实现的。
插件包括一个单一的的 JavaScript 文件和每个支持的平台上相应的本机代码文件。
添加已有的插件
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-console.git
添加自定义的插件
cordova plugin add 插件文件夹目录
(3)cli 命令行举例
Prepare 命令
cordova prepare platform_name
prepare命令把www文件夹中所有文件复制到平台文件夹的合适位置中,这里指Android的assets/www文件夹和ios的www文件夹。config.xml文件夹内容覆盖平台相关的config.xml文件。
详细命令 terminal输入cordova或者cordova help获取,ionic类似
注意事项:
- 调用 cordova JavaScript 函數从一个远端载入HTML 頁面 (不存储在本机上的的 HTML 页面) 是一种不受支持的配置,如果想远端载入html使用cordova的 InAppBrowser (插件) 。
- cordova项目中应用的为3.9.X版本,4.0以上不支持ios7
- ios平台的 congfig.xml中的name元素不显示到设备应用程序名称,所以name的值不应该为中文,用以解决cordova编译时提示更新版本的错误;安卓的name值对应显示到设备应用,应该保持一致。
已有项目移植cordova步骤 请参考http://www.jianshu.com/p/5e15e34ea336