版权声明:本文为博主原创文章,转载请注明出处
上一章我们介绍了cordova android项目是如何运行的,这一章我们介绍cordova的核心内容,插件的调用。演示一个例子,通过cordova插件,去调用摄像头。
一、插件的安装以及基本信息:
我们先在项目中安装调用摄像头的插件cordova-plugin-camera,cd到hello下,执行:
cordova plugin add cordova-plugin-camera
然后它会为我们的hello/plugins文件夹下添加cordova-plugin-camera插件(这个是整个这个插件模块,可用于安卓和ios。卸载插件用cordova plugin removecordova-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
拍照