Cordova 学习笔记(一):快速开始

1.安装cordova

Cordova安装可以通过node.js从npm上获取。npm install -g cordova 通过这个命令可以安装cordova.前提是你已经安装了node.js。

2.创建一个项目

通过命令行创建一个空的cordova project.通过命令行先引导到你想创建项目的目录,然后命令:cordova create <path> .可以通过cordova help create获取完整的命令。

3.添加一个开发平台

创建完一个空项目,引导到创建的项目路径下,通过命令cordova  platform add <platform  name>创建一个你想要的平台的项目。想看cordova支持哪些平台的项目,使用命令行:cordova platform. 如:创建android平台的项目,cordova platform add android.移除可以用cordova platform remove android .

4.运行你的app

cordova run <platform name>

5.读api文档:http://cordova.apache.org/docs/en/latest/guide/overview/

6.给项目添加插件:当你创建一个默认的空项目时,没有添加任何插件,你可以根据需要,自己手动添加插件到项目中,有许多插件,包括社区小组提供的,你都可以在plugins.cordova.io看到。你可以通过命令行在仓库查找,然后添加到项目中。例如,搜索bar和code,   $ cordova plugin search bar code产生一条大小写忽略的包含2个子字符串的插件名称。添加使用命令cordova plugin add <plugin name>。比如添加device,cordova plugin add cordova-plugin-device。

常用的插件有:

$ cordova plugin add cordova-plugin-network-information

$ cordova plugin add cordova-plugin-battery-status

$ cordova plugin add cordova-plugin-device-motion

$ cordova plugin add cordova-plugin-device-orientation

$ cordova plugin add cordova-plugin-geolocation

$ cordova plugin add cordova-plugin-camera

$ cordova plugin add cordova-plugin-media-capture

$ cordova plugin add cordova-plugin-media

$ cordova plugin add cordova-plugin-file

$ cordova plugin add cordova-plugin-file-transfer

$ cordova plugin add cordova-plugin-console

7.添加app图标

可以通过通过命令行或者ADT

<icon>元素在config.xml中定义app图标。如果没有设置,默认会使用cordova的图标。

<icon src="res/ios/icon.png" platform="ios" width="57" height="57" density="mdpi" />,这些属性,只有src是必须的。density是android独有的,设置图标密度。

通过<icon src="res/icon.png" />,设置所有平台一致的图标。

你也可以通过类似下面的设置,为不同分辨率的设备设置体验更好的图标

<platform name="android">

<icon src="res/android/ldpi.png" density="ldpi" />

<icon src="res/android/mdpi.png" density="mdpi" />

<icon src="res/android/hdpi.png" density="hdpi" />

<icon src="res/android/xhdpi.png" density="xhdpi" />

</platform>

8.启动画面设置

在项目根部的 config.xml 文件中,而不是platforms中的 添加,向下面一样:

Please notice that the value of the "src" attribute is relative to the project directory and not to the www directory. You can name the source image whatever you like. The internal name in the app are determined by Cordova.

<platform name="android">

<!-- you can use any density that exists in the Android project -->

<splash src="res/screen/android/splash-land-hdpi.png" density="land-hdpi"/>

<splash src="res/screen/android/splash-land-ldpi.png" density="land-ldpi"/>

<splash src="res/screen/android/splash-land-mdpi.png" density="land-mdpi"/>

<splash src="res/screen/android/splash-land-xhdpi.png" density="land-xhdpi"/>

<splash src="res/screen/android/splash-port-hdpi.png" density="port-hdpi"/>

<splash src="res/screen/android/splash-port-ldpi.png" density="port-ldpi"/>

<splash src="res/screen/android/splash-port-mdpi.png" density="port-mdpi"/>

<splash src="res/screen/android/splash-port-xhdpi.png" density="port-xhdpi"/></platform>

<preference name="SplashScreenDelay" value="10000" />

9.配置app

通过config.xml文件。Ios和android的配置文件位置:

app/platforms/ios/AppName/config.xml       app/platforms/android/res/xml/config.xml

核心公共配置元素:

这是通过命令行创建的默认配置:

<widget id="com.example.hello" version="0.0.1">

<name>HelloWorld</name>

<description>

A sample Apache Cordova application that responds to the deviceready event.

</description>

<author email="dev@callback.apache.org" href="http://cordova.io">

Apache Cordova Team

</author>

<content src="index.html" />

<access origin="*" />

</widget>

我的一个完整的例子:

<?xml version='1.0' encoding='utf-8'?>

<widget id="org.mjing.adroidCordova" version="0.0.2"  android-versionCode="1.2.7" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">

<preference name="loglevel" value="DEBUG" />

<preference name="Fullscreen" value="true" />

<preference name="BackgroundColor" value="0xff0000ff"/>

<feature name="Whitelist">

<param name="android-package" value="org.apache.cordova.whitelist.WhitelistPlugin" />

<param name="onload" value="true" />

</feature>

<feature name="Device">

<param name="android-package" value="org.apache.cordova.device.Device" />

</feature>

<feature name="Camera">

<param name="android-package" value="org.apache.cordova.camera.CameraLauncher" />

</feature>

<feature name="Notification">

<param name="android-package" value="org.apache.cordova.dialogs.Notification" />

</feature>

<feature name="SplashScreen">

<param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" />

<param name="onload" value="true" />

</feature>

<feature name="NetworkStatus">

<param name="android-package" value="org.apache.cordova.networkinformation.NetworkManager" />

</feature>

<feature name="File">

<param name="android-package" value="org.apache.cordova.file.FileUtils" />

<param name="onload" value="true" />

</feature>

<feature name="Media">

<param name="android-package" value="org.apache.cordova.media.AudioHandler" />

</feature>

<preference name="AndroidPersistentFileLocation" value="Internal" />

<allow-intent href="market:*" />

<name>FirstCordova</name>

<description>

jing.ming 的第一个cordova项目.

</description>

<author email="395404211@qq.com" href="http://http://cordova.apache.org/docs/en/latest/config_ref/index.html">

jing.ming

</author>

<platform name="android">

<icon src="res/android/aicai.png"/>

<splash src="res/android/bar3.jpg"/>

<!--   <icon src="res/android/mdpi.png" density="mdpi" />

<icon src="res/android/hdpi.png" density="hdpi" />

<icon src="res/android/xhdpi.png" density="xhdpi" /> -->

</platform>

<content src="index.html" /><!-- start page -->

<access origin="*" />

<allow-intent href="http://*/*" />

<allow-intent href="https://*/*" />

<allow-intent href="tel:*" />

<allow-intent href="sms:*" />

<allow-intent href="mailto:*" />

<allow-intent href="geo:*" />

</widget>

这里只说明android的配置:

太多了,需要的时候自己在查文档吧。

<preference name="KeepRunning" value="false"/>

<preference name="LoadUrlTimeoutValue" value="10000"/>

<preference name="SplashScreen" value="mySplash"/>

<preference name="SplashScreenDelay" value="10000"/>

<preference name="InAppBrowserStorageEnabled" value="true"/>

<preference name="LoadingDialog" value="My Title,My Message"/>

<preference name="LoadingPageDialog" value="My Title,My Message"/>

<preference name="ErrorUrl" value="myErrorPage.html"/>

<preference name="ShowTitle" value="true"/>

<preference name="LogLevel" value="VERBOSE"/>

<preference name="AndroidLaunchMode" value="singleTop"/>

<preference name="OverrideUserAgent" value="Mozilla/5.0 My Browser" />

<preference name="AppendUserAgent" value="My Browser" />

cordova学习-基础篇的更多相关文章

  1. Docker虚拟化实战学习——基础篇(转)

    Docker虚拟化实战学习——基础篇 2018年05月26日 02:17:24 北纬34度停留 阅读数:773更多 个人分类: Docker   Docker虚拟化实战和企业案例演练 深入剖析虚拟化技 ...

  2. [转]C++学习–基础篇(书籍推荐及分享)

    C++入门 语言技巧,性能优化 底层硬货 STL Boost 设计模式 算法篇 算起来,用C++已经有七八年时间,也有点可以分享的东西: 以下推荐的书籍大多有电子版.对于技术类书籍,电子版并不会带来一 ...

  3. ios学习基础篇一

    搜集的不错的oc学习资料 大概总结: http://my.oschina.net/luoguankun/blog/208526 详细教程: http://www.w3cschool.cc/ios/io ...

  4. Laravel学习基础篇之--路由

    终于还是决定再多学一门重量级框架,当然首选必备还是被称为最优雅的Web开发框架--Laravel 对于框架的入门,首先了解它的路由规则是先前必备的,以下是laravel 中几种常见的基础路由规则 // ...

  5. Flume搭建及学习(基础篇)

    转载请注明原文出处:http://www.cnblogs.com/lighten/p/6830439.html 1.简介 该文主要是翻译官方的相关文档,源地址点击这里.介绍一下Flume的一些基本知识 ...

  6. Bat 脚本学习 (基础篇)

    [转]Bat 脚本学习 2015-01-05 14:13 115人阅读 评论(0) 收藏 举报 基础部分: ============================================== ...

  7. Python ( 学习 基础篇第一部 )

    目录 注释 注释的分类 注释的注意点 变量 变量的概念 变量的声明 变量的命名 变量的交换 变量的缓存机制 常量 进制 进制的转换 原码 反码 补码 六大数据类型 Number 的四大类 字符串 st ...

  8. [性能测试] locust学习-基础篇

    在本文中,我将介绍一个名为Locust的性能测试工具.我将从Locust的功能特性出发,结合实例对Locust的使用方法进行介绍. 概述 Locust主要有以下的功能特性: 在Locust测试框架中, ...

  9. R语言学习-基础篇

    从五月10日开始自学R in action,将我的学习所得逐渐发布在博客上. chapter1.新手上路 工作空间:存储着所有用户定义的对象(向量,矩阵,函数,数据框,列表): 当前的工目录保存是R用 ...

随机推荐

  1. How to implement multiple constructor with different parameters in Scala

    Using scala is just another road, and it just like we fall in love again, but there is some pain you ...

  2. php-fpm 与 cgi

    CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者. web server(比如说nginx)只是内容的分发者.比如,如果请求/index.html ...

  3. EasyUI datagrid 多条件查询

    <script type="text/javascript"> $(function () { $("#dg").datagrid({ url: ' ...

  4. The tilde ( ~ ) operator in JavaScript

    From the JavaScript Reference on MDC, ~ (Bitwise NOT) Performs the NOT operator on each bit. NOT a y ...

  5. 【转至nmap】nc命令

    什么是nc nc是netcat的简写,有着网络界的瑞士军刀美誉.因为它短小精悍.功能实用,被设计为一个简单.可靠的网络工具 nc的作用 (1)实现任意TCP/UDP端口的侦听,nc可以作为server ...

  6. 12.详解Condition的await和signal等待通知机制

    1.Condition简介 任何一个java对象都天然继承于Object类,在线程间实现通信的往往会应用到Object的几个方法,比如wait(),wait(long timeout),wait(lo ...

  7. Java集合详解3:Iterator,fail-fast机制与比较器

    Java集合详解3:Iterator,fail-fast机制与比较器 今天我们来探索一下LIterator,fail-fast机制与比较器的源码. 具体代码在我的GitHub中可以找到 https:/ ...

  8. CGLIB介绍与原理

    转载: http://blog.csdn.net/zghwaicsdn/article/details/50957474 CGLIB介绍与原理(部分节选自网络) 一.什么是CGLIB? CGLIB是一 ...

  9. es6环境中,export与import使用方法

    前言 参考自阮一峰大神的教程:http://es6.ruanyifeng.com/?search=export&x=6&y=5#docs/module#export-命令 声明:如有问 ...

  10. h1标签

    h1标签一.每个网页只能拥有一个<H1>标签 H2,H3,H4可以有多个...但多个H1造成的后果是搜索引擎不知道你这个页面哪个标题内容最重要,会淡化这个页面的标题和关键词.H1用得好的话 ...