由于最近公司的项目要求用Cordova来进行开发,便开始了对Cordova的学习。由于本人之前也是做iOS开发,因此相关内容主要从iOS平台的角度来写。刚开始学习Cordova这个平台,希望以此总结所学并给需要的人提供一些参考,如有不当的地方敬请指正。
 
关于App到底是Native还是Web或者Hybrid的讨论很多,而Cordova就是这样一套为Web开发人员提供进行快速移动应用开发的框架。其前身为Adobe的PhoneGap框架,后贡献给Apache社区成为了一个开源项目。Cordova既可使熟悉Web开发的技术人员很容易的开发移动应用,也可以让原来的原生移动应用开发者集成Web页面,并通过plugin(插件)实现设备底层资源与js的互操作,是较理想的Hybrid或Web App的解决方案,可实现App的低成本和快速开发。
 
  • 1. 环境搭建
 
安装Xcode:
 
这个不用多说了,直接在AppStore下载最新版安装即可。
 
安装Node.js
 
主要是需要用来下载和安装Cordova,需要注意:不要下载最新的4.x.x版,可能会由于版本太新无法安装cordova,下面的版本已经证实可用。
 
 
下载后直接运行安装文件pkg,一直“继续”直至安装成功。
在终端运行npm -v出现版本号即说明成功。
 
然后就可以安装Cordova了。
 
安装Cordova CLI:
 
sudo npm install -g cordova或者sudo npm install -g cordova@x.x.x来安装指定版本
 
注:本文编写时最新为5.3.3版
 
更新Cordova:
 
sudo npm update cordova -g
 
如果下载失败的话,需要用以下的方式引用国内镜像站:
 
npm config set registry http://registry.cnpmjs.org
npm info cordova npm --registry http://registry.cnpmjs.org info cordova
 
安装成功画面:
 
 
或输入:
cordova -v  
显示版本号即证明安装成功。
 
基于iOS平台的环境还是相对比较容易的,完成以上步骤后环境搭建结束。
 
 
  • 2. 创建第一个Cordova项目
 
打开终端,cd到相应的路径下,输入:
 
$cd ~/Documents

$cordova create hello com.example.hello HelloWorld
 
加-d可以显示工程的创建的详细情况。
 
第一个参数hello为工程的文件夹名;
第二个参数(可选)com.example.hello为应用程序的id名,与Xcode中类似,可以在config.xml中修改,如果不指定的话默认为io.cordova.hellocordova;
第三个参数(可选)HelloWorld为App显示的名称,也可在config.xml中修改。
 
创建成功后可以打开hello目录查看以下结构:
 
|--conig.xml         //cordova的配置文件
|--hooks/             //存放自定义cordova命令的脚本文件。      
||--README.md 
|--platforms/      //各个平台原生工程代码,会在build时被覆盖勿修改
|--plugins/        //插件目录(主要是提供各个平台的原生API)
|--www/          //用H5编写的源代码目录,build时会被放入各个平台的assets\www目录。
||--css/
||--img/
||--index.html       //App入口html文件
||--js/
 
 
  • 3. 添加iOS平台支持
 
在终端中输入:
 
进入工程目录:
$ cd hello
 
添加iOS平台文件:
$cordova platform add ios
 
也可添加其他平台,如:
$cordova platform add android
Adding ios project...
iOS project created with cordova-ios@3.9.1
Discovered plugin "cordova-plugin-whitelist" in config.xml. Installing to the project
Fetching plugin "cordova-plugin-whitelist@1" via npm
Installing "cordova-plugin-whitelist" for ios
 
见到以上内容为执行成功。
 
完成后可以看到platforms文件夹下面增加了以下路径:
 
|--platforms
|--platforms.json
||--ios/
|||--cordova/
|||--CordovaLib/
|||--HelloWorld/
|||--platform_www/
|||--www/
|||--HelloWorld.xcodeproj
 
可直接打开HelloWorld.xcodeproj工程在Xcode中进行编译和运行,如图:
 
 
 
运行结果:
 
 
参考资料:
 
 

Cordova5 -- iOS实战(一)的更多相关文章

  1. 关东升的iOS实战系列图书 《iOS实战:入门与提高卷(Swift版)》已经上市

             承蒙广大读者的厚爱我的 <iOS实战:入门与提高卷(Swift版)>京东上市了,欢迎广大读者提出宝贵意见.http://item.jd.com/11766718.html ...

  2. 关东升的《iOS实战:图形图像、动画和多媒体卷(Swift版)》上市了

    关东升的<iOS实战:图形图像.动画和多媒体卷(Swift版)>上市了 承蒙广大读者的厚爱我的<iOS实战:图形图像.动画和多媒体卷(Swift版)>京东上市了,欢迎广大读者提 ...

  3. iOS实战(零):开发社区、文档等资源

    社区 Apple官方资源 Xcode文档库: Window->Documentation and API Reference (可以在xcode的Preferences中下载最新的文档) iOS ...

  4. (ios实战)ios调试总结(转载)

    在程序中,无论是你想弄清楚为什么数组中有3个对象而不是5个,或者为什么一个新的玩家开始之后,游戏在倒退——调试在这些处理过程中是比较重要的一部分.通过本文的学习,我们将知道在程序中,可以使用的大多数重 ...

  5. (Ios 实战) 自定义UITableView

    自定义UITableView 分成两个部分 1 自定义UITableViewCell 继承UITableViewCell,同时提供接口,根据当前的数据,现实View 2  在UITableView中实 ...

  6. (ios实战) UINavigationBar 返回按钮 文本自定义实现

    在实际开发过程, 我们使用navigationController时,上一个标题过长,导致下一个界面的返回按钮文本过长,比较难看,如果标题取名过短,又不能完全表达含义. 下面时如何实现返回按钮的Tit ...

  7. (ios实战)单个ViewControl适配不同ios版本xib文件实现

    xcode5 中的界面布局 根据sdk 分成ios7.0 and Later 和 ios6.1 and Earlier 两种,那如何xib同时支持 ios6 和ios7 的界面呢 方法如下: 在xco ...

  8. .net 码农转战 iOS - 初探

    好久没写博客了,之前还打算把毕业设计中涉及到的两个算法拿出来说说(脸型分析 + 声音分析),博文都写了一半了,后来实在太忙了,那篇随笔也就沉在草稿列表中没动过. 我原先是专职 .net 开发的,在公司 ...

  9. Java爬虫_资源网站爬取实战

    对 http://bestcbooks.com/  这个网站的书籍进行爬取 (爬取资源分享在结尾) 下面是通过一个URL获得其对应网页源码的方法 传入一个 url  返回其源码 (获得源码后,对源码进 ...

随机推荐

  1. Cocos2d-x获取随机数

    计算机是无法产生真正的随机数的,都是伪随机.获取随机数的方式和算法多种多样,这里只给出一种方法,基于最新的C++11. 1 2 3 4 5 #include <random> std::u ...

  2. 【转】傅里叶变换 拉普拉斯变 z变换 DFT DCT意义

    傅里叶变换在物理学.数论.组合数学.信号处理.概率论.统计学.密码学.声学.光学.海洋学.结构动力学等领域都有着广泛的应用(例如在信号处理中,傅里叶变换的典型用途是将信号分解成幅值分量和频率分量). ...

  3. 关于mysql的error-based injection payload

    今天用sqlmap扫一个网站,想得到一个表的所有列名,注意到sqlmap用到的一个error-based payload的: 1 AND (SELECT 3174 FROM(SELECT COUNT( ...

  4. 【原】Spark中Job如何划分为Stage

    版权声明:本文为原创文章,未经允许不得转载. 复习内容: Spark中Job的提交 http://www.cnblogs.com/yourarebest/p/5342404.html 1.Spark中 ...

  5. spoj 8222 Substrings(后缀自动机+DP)

    [题目链接] http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=28005 [题意] 给一个字符串S,令F(x)表示S的所有长度为 ...

  6. Casio普通计算器编程

    用xelatex写了个奇怪的东西……欢乐向 PDF  http://files.cnblogs.com/htfy/calc.pdf TEX http://files.cnblogs.com/htfy/ ...

  7. HDU4349--Xiao Ming's Hope(数论)

    输入一个n(1<=n<=108),求C(n,0),C(n,1),C(n,2)...C(n,n)有多少个奇数. Lacus定理 http://blog.csdn.net/acm_cxlove ...

  8. Git学习资料

    1.http://wuyuans.com/2012/05/github-simple-tutorial/ 2.http://www.ihref.com/read-16369.html

  9. bzoj3926: [Zjoi2015]诸神眷顾的幻想乡 对[广义后缀自动机]的一些理解

    先说一下对后缀自动机的理解,主要是对构造过程的理解. 构造中,我们已经得到了前L个字符的后缀自动机,现在我们要得到L+1个字符的后缀自动机,什么需要改变呢? 首先,子串$[0,L+1)$对应的状态不存 ...

  10. MSSQLSERVER数据库- 获取月份的第一天和最后一天

    本月第一天:select dateadd(dd,-day(getdate())+1,getdate()) 本月最后一天:select dateadd(dd,-day(getdate()),datead ...