版权声明:本文为博主原创文章,转载请注明出处

上一章我们介绍了cordova android项目是如何运行的,这一章我们介绍cordova的核心内容,插件的调用。演示一个例子,通过cordova插件,去调用摄像头。

一、插件的安装以及基本信息:

我们先在项目中安装调用摄像头的插件cordova-plugin-camera,cd到hello下,执行:

cordova plugin add cordova-plugin-camera

然后它会为我们的hello/plugins文件夹下添加cordova-plugin-camera插件(这个是整个这个插件模块,可用于安卓和ios。卸载插件用cordova plugin remove cordova-plugin-camera);

同时也会在我们的platforms/android/platform_www/plugins下面添加对应的安卓的插件cordova-plugin-camera(这个是根据对应的平台生成的对应的插件内容,只可用于本安卓平台);

也会在我们的资源文件夹assets/www/plugins下添加cordova-plugin-camera插件(这个资源文件夹下的所有的文件,才是真正的app运行的时候调用的,加载的文件);

还会为我们的src下添加org.apache.cordova.camera包以及对应的java文件。

为什么要在项目中加这么多,这只是cordova的机制,我们不作重点研究。这三个目录是有不同的作用的,但我们只重点关注assets/www目录下。

除了上面这些,加完这个插件也会改变一些其他文件的内容,首先看res/xml/config.xml,最后多了一项配置信息:

feature · name:"js中间件通过它调用java方法"。

(中间件就是我们的插件对应的一些js文件。我们写的js程序通过这些插件(中间件)去调用Jjava原生内容)

param · name:"android-package"     value:原生插件类的包类路径。

打开assets/www下cordova_plugins.js,发现其中也增加了很多内容:

cordova.define('cordova/plugin_list', function(require, exports, module) {

module.exports = [

{

"id": "cordova-plugin-camera.Camera",

"file": "plugins/cordova-plugin-camera/www/CameraConstants.js",

"pluginId": "cordova-plugin-camera",

"clobbers": [

"Camera"

]

},

{

"id": "cordova-plugin-camera.CameraPopoverOptions",

"file": "plugins/cordova-plugin-camera/www/CameraPopoverOptions.js",

"pluginId": "cordova-plugin-camera",

"clobbers": [

"CameraPopoverOptions"

]

},

{

"id": "cordova-plugin-camera.camera",

"file": "plugins/cordova-plugin-camera/www/Camera.js",

"pluginId": "cordova-plugin-camera",

"clobbers": [

"navigator.camera"

]

},

{

"id": "cordova-plugin-camera.CameraPopoverHandle",

"file": "plugins/cordova-plugin-camera/www/CameraPopoverHandle.js",

"pluginId": "cordova-plugin-camera",

"clobbers": [

"CameraPopoverHandle"

]

}

];

module.exports.metadata =

// TOP OF METADATA

{

"cordova-plugin-whitelist": "1.3.0",

"cordova-plugin-compat": "1.0.0",

"cordova-plugin-camera": "2.3.0"

};

// BOTTOM OF METADATA

});

id:插件中某个模块或具体功能的id

file:这个id对应的js文件(实现这个模块或功能的文件)

pluginId:插件的ID,通过这个ID可以进行插件的安装和卸载

clobbers:H5或js通过它去调用js中间件(插件)中定义的方法

二、在代码中如何调用摄像头插件

上面我们说的都是在执行了cordova plugin add cordova-plugin-camera,安装好插件之后所产生的内容以及插件的一些基本信息,配置信息。接下来我们说一下如何简单使用这个插件。

首先我们修改index.html(指的assets/www下的)

Hello World

拍照

cordova调用java_Cordova入门系列(三)Cordova插件调用相关推荐

  1. 机器学习入门系列三(关键词:逻辑回归,正则化)

    机器学习入门系列三(关键词:逻辑回归,正则化) 目录(?)[+] 一逻辑回归 逻辑回归 假设表示 决策边界 代价函数 其他优化方法 多元分类 二正则化 一.逻辑回归 1.逻辑回归 什么是逻辑回归问题, ...

  2. Reflex WMS入门系列三十二:导出到Excel

    Reflex WMS入门系列三十二:导出到Excel 如同SAP系统的风格 --- 凡是有list的界面,都能导出到Excel ---, Reflex WMS系统也提供了类似的功能.几乎在任何的Lis ...

  3. 小猪的C语言快速入门系列(三)

    小猪的C语言快速入门系列(三) 标签: C语言 本节引言: 在上一节中,对C语言的基本语法进行了学习,类比成学英语的话,我们现在 只是会单词而已,组成一个个句子还需要学习一些语法,本节学习的就是两对 ...

  4. 零基础数据挖掘入门系列(三) - 数据清洗和转换技巧

    思维导图:零基础入门数据挖掘的学习路径 1. 写在前面 零基础入门数据挖掘是记录自己在Datawhale举办的数据挖掘专题学习中的所学和所想, 该系列笔记使用理论结合实践的方式,整理数据挖掘相关知识, ...

  5. sumo添加车辆_SUMO仿真快速入门系列三:产生车辆移动模型

    在<SUMO快速入门系列二>中,我们已经产生了一个较为简单的街道地图模型. 本节中我们产生车辆移动模型并与道路模型结合,使得车辆在真实道路中跑起来.在SUMO中,车辆移动模型称为Deman ...

  6. SUMO仿真快速入门系列三:产生车辆移动模型

    在<SUMO快速入门系列二>中,我们已经产生了一个较为简单的街道地图模型. 本节中我们产生车辆移动模型并与道路模型结合,使得车辆在真实道路中跑起来.在SUMO中,车辆移动模型称为Deman ...

  7. etcd入门系列三:身份验证访问控制

    etcd入门系列 一. etcd在docker中的安装与使用 二. etcd 开启 https 1. 简介 etcd 默认是没有开启访问控制的,如果我们开启外网访问的话就需要考虑访问控制的问题,etc ...

  8. 你必须懂也可以懂的微服务系列三:服务调用

    在了解服务注册与反注册后,就该到服务调用环节了. 进行服务调用之前,需要组装请求头.请求体,构建客户端对象,通过服务提供方url地址调用远程服务.此方式虽然可以实现远程调用,但是需要使用者了解底层调用 ...

  9. cmd 调用webservice接口_c# 三种方法调用WebService接口

    1.引用*.wsdl文件 WebService服务端会提供wsdl文件,客户端通过该文件生成.cs文件以及生成.dll. 注意:若服务端只提供的了URL,在URL后面加上"?wsdl&quo ...

最新文章

  1. Jsp/eclipse 链接oracle数据库
  2. python处理大量excel数据-python如何批量处理excel数据?
  3. 顺序、二分查找文本数据
  4. ABAP性能优化之向内表添加纪录
  5. java 12错误_Java异常处理的12条军规总结
  6. Matlab向量与多项式
  7. php干扰函数,php – 类构造函数干扰另一个类
  8. Ubuntu环境下,使用clion编译器,使用开源opensll的对称AES算法对于文件进行加密,C++代码
  9. python 类似wordpress_python,_python 有没有类似WordPress的这种库?,python - phpStudy
  10. resnet模型的图像分类结构图_ResNet - 2015年 ILSVRC 的赢家(图像分类,定位及检测)...
  11. 【实习生笔试面试题】2013年搜狐SOHU实习生技术笔试题
  12. HDU1225 字符串
  13. 如何快速构建一个 Spring Boot 工程?
  14. 力扣每日一刷-两数之和(暴力、双指针)
  15. tomcat 启动出现 org.apache.tomcat.util.compat.JreCompat.isGraalAvailable()Z错误
  16. 机器学习——k近邻算法
  17. 等比数列求和python_numpy的logspace产生等比数列
  18. 【SEO优化,网络营销】刘克亚《利润腾挪》,一分钟销售51000元的书
  19. sortBy和sortByKey区别
  20. kettle多数据合并

热门文章

  1. NGUI -- UILabel
  2. Linux桌面系统简介
  3. 联想微型计算机机箱拆解,联想锋行机箱接线方法 联想锋行机箱拆解改造步骤...
  4. Valens HDBaseT 3.0 4K60延长器 视频IC 视频延长芯片收发一体 VS3000
  5. (图解)神经网络之CNN与RNN的关系
  6. 怎样成为一个天才 - 王垠
  7. 传输层-传输控制协议(TCP)
  8. H5版俄罗斯方块游戏开发:需求分析和框架实现
  9. python实现朋友圈跟发_用Python发一个高逼格的朋友圈「附代码」
  10. Aix下alog命令说明