什么是Cordova?

Cordova以前也叫PhoneGap,它提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。Cordova还提供了一组统一的JavaScript类库,以及为这些类库所用的设备相关的原生后台代码,简而言之,cordova就是连接H5和原生系统的桥。通过cordova就可以在H5页面上开发出类似原生APP的应用,而且还是跨平台的。

在windows上如何搭环境搭

1. 首先安装node.js.

不要被这个nodejs吓住了,其实只不过是用它来安装cordova而已。下载对应平台的版本,一路下一步就完成了安装。

装完之后在命令行窗口输入下面的命令验证一下,如果能看到图示字样则表示安装成功:

node -v  

npm -v

  

2.  下面开始安装cordova

按照官方的安装方式:npm install -g cordova 可以安装成功,不过可能有点慢。我这里推荐淘宝npm镜像加速,在命令行下输入:

npm install -g cnpm --registry=https://registry.npm.taobao.org

稍等片刻就可以安装完npm镜像,然后用cnpm -v 能查看到版本号,是表示安装成功

接下来在命令行中输入cnpm install cordova -g,耐心等待...

出现这个提示,说明cordova已经安装好了。接下来创建一个android的app来试试。

为了开发一个能在android上运行的app,需要做一堆的小工作,需要有点耐心。其间可能因为网络被墙的原因,会下载失败,不过网上都有对应的解决方法。下面开始搭建这些附属的环境。

3. 安装jdk

先点击Accept License Agreement 然后下载所需的版本。安装很简单,如果安装默认方式安装,则只需要一路点下一步就好了。

然后添加环境变量:我的电脑-->右键属性 --> 系统高级设置-->高级-->环境变量-->如图所示:

接着在Path中添加如下代码,点击这里进行详情介绍.

 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

最后安装adt-bundle-windows ,它里边集成了sdk和eclipse,省了不少事。考虑到被墙,我这里就直接贴别人的处理方法。详情点击

解压出来,复制sdk的路径,加入环境变量。具体的操作和前面类似,我就不重复了,详情点击.

双击sdk manager.exe 开始更新,由于被墙的原因,很可能更新失败,(可恶的GFW,fk....). 这里贴上网友的解决方案,详情点击

需要钩选sdk-tools,platform-tools,build-tools,如果要模拟器,还要钩一个Android api ,如果搞不懂哪些是必需的,就多钩几个。比较慢,下载下来有几十个G。

网上还有说要安装Ant , 也有说cordova 6.0以后,都换了build工具了,不知道是真是假,反正我都装了。这里要注意,Ant1.9.x之后的zip包,并不像网上的贴子说的那样,复制bin目录到环境变量,而是要先在命令行下输入build.bat,进行构建,最后会生成build和dist目录,这个dist目录,及下面的lib,bin才是真正要加到环境变量中的内容。我晒一下win10上的效果图:

好了,现在我们可以开始进入最有创造性的内容了。打开命令行,开始我的第一个HelloWorld

cordova create hello com.example.hello HelloWorld

cd hello

cordova platform add android

如果提示build SUCCESS那么恭喜,编译成功!!

如果出现下面的画面,则表示有sdk或依赖的包没有安装

我就多次被卡在这个"Failed to install cordova-plugin-whitelist' 百度一圈无果,果断google, stackoverflow, 如果没有添加任何cordova插件就报这个错误,肯定是少打了钩,再去钩一圈加来,一般就可以顺利通过了。

提示我Android SDK platform 24那么我就把24的都钩上,这样总行了吧。有点慢,不过好在没有报错了。

接上手机(也可以在sdk manager中添加虚拟机)看看运行效果。手机需要在开发模式中钩选允许调式,然后手机上允许这台计算机连接。然后就输下面的命令:

cordova run 

如果不出意外,你的手机上就会生成一个叫hello的应用,启动之后就是一个cordova的logo. 接下来就是常规的h5开发,如果有用过eclipse的话,可以通过它进行调试,我先做一个简单的,直接用sublimeText进行编写。找到hello目录里边的www,那里是整个h5的根目录,每次运行cordova build 或 run都会用到这里边的文件。

如果要访问原生系统提供的功能,需要用到cordova的插件,比如调用系统对话框来代替alert弹窗,就需要先安装cordova的Dialog插件,比起前面的操作,这个简单,通常不会遇到问题。这里有官方例子. 写的有点罗嗦,简单一句话就是: cordova plugin add 插件名 或git地址

完了之后,就可以在js中使用了,具体的使用方法参考插件官方的说明。

前面说安装插件可能不会有问题,但是当你重新cordova build的时候,可能就会报错了,比如:

You have not accepted the license agreements of the following SDK components:
[Android Support Repository].
Before building your project, you need to accept the license agreements and complete the installation of the missing components using the Android Studio SDK Manager.
Alternatively, to learn how to transfer the license agreements from one workstation to another, go to http://d.android.com/r/studio-ui/export-licenses.

  说什么鬼协义没有接受,搞半天也没有弄懂,反正我安装sdk的都是点了aceept的,不点也不让安装啊,真是不明白。留着以后慢慢研究,如果有这方面的解决方法,请告诉我一下,谢谢。【PS:终于找到这个问题的解决方法。其实错误提示中写的很清楚,第一行就写了SDK Manager中钩选缺失的扩展组件就好。是我那天过于急燥,没有看清】还有一个问题没有很好的解决,在js中的对象用console.log在eclipse中看不到,只有一个[object object].目前没有很好的办法,想到可能的方法就是把对象转成json字符串或遍厉出来再打印。或用npm -g install weinre这样的远程调式工具(现在有点过时了);更好的方式是使用google浏览器自带的工具,详情请点击 需要自备梯子哦

导入Eclipse

在命令行下启动完app之后,没有任何输出提示,这显然不方便调试。所以需要将项目导入进eclipse进行调式,导入方法很简单,没有太多讲究,右键选择导入--> android 已存在的项目就好了

总结

  通过不断的折腾,总算是在手机上运行成功了。最大困难可能是前面的环境搭建,一方面是网络被墙,一方面是需要对android/ios这方面的配置有一定知识储备。遇到困难不要慌,不断的搜索,去官方看看文档,错误提示。一个问题一个问题的解决,完成的时候,就会收获一份成功的喜悦。

资源列表

中文参考

H5程序员如何利用cordova开发跨平台应用的更多相关文章

  1. 10款Mac上程序员装机必备的开发工具推荐和下载

    10款Mac上程序员装机必备的开发工具推荐和下载 使用Mac的用户主要有两大类:设计师和程序员,为各位程序员童鞋推荐10个Mac上非常棒的开发工具和辅助工具,分享软件专题[10款Mac上程序员装机必备 ...

  2. 3名程序员被抓!开发“万能钥匙”APP,撬走3个亿

    来自:程序员头条 报道 又有 3 名程序员被抓!开发"万能钥匙"APP,撬走 3 亿! 前几天,据央视新闻报道,上海公安机关接到共享单车企业报案,随后破获了一起共享单车万能解锁 A ...

  3. IT观察】网络通信、图片显示、数据库操作……Android程序员如何利用开源框架

    每个Android 程序员都不是Android应用开发之路上孤军奋战的一个人,GitHub上浩如烟海的开源框架或类库就是前人为我们发明的轮子,有的轮子能提高软件性能,而有的轮子似乎是以牺牲性能为代价换 ...

  4. 作为一个程序员怎么通过android开发赚钱

    ​ 上面是一个程序员通过Android开发每天的收入,信则有! 自己学安卓差不多,有一年了.我本来是从事javaweb开发的,可能学习安卓上手会快点.其实安卓没有那难 .首先开发安卓程序,要有一个,开 ...

  5. 非IT行业大企程序员讲述MIS系统开发案例

      雪莉叹了一口气,调整了一下被汗水濡湿的刘海,然后向后靠在办公椅中,伸手在电脑键盘上输入了一些内容, 最后拿起印刷着房地产广告的扇子,边扇风边等待着.   她的工位在办公室的东侧角落,侧靠着窗.此时 ...

  6. .Net程序员快速学习安卓开发-布局和点击事件的写法

    关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 本系列课程 致力于老手程序员可以快速入门学习安卓开发.系统全面的从一个.Net程序员的角度一步步学习总结安 ...

  7. 贯穿程序员一生的必备开发技能——debug

    1.什么是debug debug是一种运行模式,用来跟踪程序的走向,以及跟踪程序运行过程中参数的值的变化. 2.debug的作用 debug一般用来跟踪代码的运行过程,通常在程序运行结果不符合预期或者 ...

  8. 2018年,Java程序员转型大数据开发,是不是一个好选择?

    近日网上有一篇关于Java程序员职场生存现状的文章“2017年 Java 程序员,风光背后的危机”,在Java程序员圈子里引起了广泛关注和热议. 2017年,Java 程序员面临更加激烈的竞争. 不得 ...

  9. 《程序员的呐喊》:一个熟悉多种语言的老程序员对编程语言、开发流程、google的战略等的思考,比较有趣。 五星推荐

    作者熟悉二三十种编程语言,写了20多年代码.本书是作者对编程语言.开发流程.google的战略等的思考.比较有趣. 前面部分是作者对编程语言的一些思考.作者鄙视C++, Java,面向对象.比较有趣的 ...

随机推荐

  1. 08.LoT.UI 前后台通用框架分解系列之——多样的Tag选择器

    LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/du ...

  2. [转]利用URLConnection来发送POST和GET请求

    URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和 URL 之间的通信链接.程序可以通过URLConnection实例向该URL发送请求.读取U ...

  3. 如何在网页中提取Email地址

    开博好久了,今天第一次发表技术文档,之前总是将一些好的事例保存在电脑,时间久了找起来也很麻烦,所以还是放在博客里进行归类比较方便,这样也能将自己在学习过程中的一些心得体会分享给大家,也能给需要的人一点 ...

  4. html5 与视频

    1.视频支持格式. 有3种视频格式被浏览器广泛支持:.ogg,.mp4,.webm. Theora+Vorbis=.ogg  (Theora:视频编码器,Vorbis:音频编码器) H.264+$$$ ...

  5. springmvc SSM 多数据源 shiro redis 后台框架 整合

    A集成代码生成器 [正反双向(单表.主表.明细表.树形表,开发利器)+快速构建表单 下载地址    ; freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类 ...

  6. JQuery实现表格的增加行和删除行

    利用JQuery实现datatables插件的增加和删除行操作 在学习过程中遇到了这个利用JQuery对表格行的增加和删除,特记录下来以供初学者参考. 下面是主要的代码: <meta http- ...

  7. 用Kotlin创建第一个Android项目(KAD 01)

    原文标题:Create your first Android project using Kotlin (KAD 01) 作者:Antonio Leiva 时间:Nov 21, 2016 原文链接:h ...

  8. HTML5游戏源码 飞翔的字母 可自定义内容

    相信大家都玩过飞翔的小鸟吧,当然,可能已经有很多人因为这个游戏砸了不少手机.吼吼. 废话不多说,回到主题,源码如下. 博客园上传空间大小有限制,没法上传了,需要打包源码的朋友们请留言邮箱地址.当然还有 ...

  9. 算是休息了这么长时间吧!准备学习下python文本处理了,哪位大大有好书推荐的说下!

    算是休息了这么长时间吧!准备学习下python文本处理了,哪位大大有好书推荐的说下!

  10. appium+robotframework环境搭建

    appium+robotframework环境搭建步骤(Windows系统的appium自动化测试,只适用于测试安卓机:ios机需要在mac搭建appium环境后测试) 搭建步骤,共分为3部分: 一. ...