<div class="blogpost-body" id="cnblogs_post_body">
<p><span style="font-family:'courier new', courier;">版权声明:本文为博主原创文章,转载请注明出处</span></p>
<p><span style="font-family:'courier new', courier;"> </span></p>
<p><span style="font-family:'courier new', courier;"> </span></p>
<p><span style="font-family:'courier new', courier;"> 上一章我们介绍了cordova android项目是如何运行的,这一章我们介绍cordova的核心内容,插件的调用。演示一个例子,通过cordova插件,去调用摄像头。</span></p>
<p><span style="font-family:'courier new', courier;"> </span></p>
<p><span style="font-family:'courier new', courier;">一、插件的安装以及基本信息:</span></p>
<p><span style="font-family:'courier new', courier;"> 我们先在项目中安装调用摄像头的插件<span class="s1">cordova-plugin-camera,cd到hello下,执行:</span></span></p>
<div class="cnblogs_code">
<pre class="blockcode"><span style="font-family:'courier new', courier;">cordova plugin add cordova-plugin-camera</span></pre>
</div>
<p><span style="font-family:'courier new', courier;"> 然后它会为我们的hello/plugins文件夹下添加cordova-plugin-camera插件(这个是整个这个插件模块,可用于安卓和ios。卸载插件用cordova plugin remove cordova-plugin-camera);</span></p>
<p><span style="font-family:'courier new', courier;"> 同时也会在我们的platforms/android/platform_www/plugins下面添加对应的安卓的插件cordova-plugin-camera(这个是根据对应的平台生成的对应的插件内容,只可用于本安卓平台);</span></p>
<p><span style="font-family:'courier new', courier;"> 也会在我们的资源文件夹assets/www/plugins下添加cordova-plugin-camera插件(这个资源文件夹下的所有的文件,才是真正的app运行的时候调用的,加载的文件);</span></p>
<p><span style="font-family:'courier new', courier;"> 还会为我们的src下添加<em>org.apache.cordova.camera包以及对应的java文件。</em></span></p>
<p><span style="font-family:'courier new', courier;"> 为什么要在项目中加这么多,这只是cordova的机制,我们不作重点研究。这三个目录是有不同的作用的,但我们只重点关注assets/www目录下。</span></p>
<p><span style="font-family:'courier new', courier;"> </span></p>
<p><span style="font-family:'courier new', courier;"> 除了上面这些,加完这个插件也会改变一些其他文件的内容,首先看res/xml/config.xml,最后多了一项配置信息:</span></p>
<div class="cnblogs_code">
<pre class="blockcode"><span style="font-family:'courier new', courier;"><feature name="Camera">
<param name="android-package" value="org.apache.cordova.camera.CameraLauncher" />
</feature></span></pre>
</div>
<p><span style="font-family:'courier new', courier;"> feature · name:"js中间件通过它调用java方法"。</span><br><span style="font-family:'courier new', courier;"> (中间件就是我们的插件对应的一些js文件。我们写的js程序通过这些插件(中间件)去调用Jjava原生内容)</span><br><span style="font-family:'courier new', courier;"> param · name:"android-package" value:原生插件类的包类路径。</span></p>
<p><br><span style="font-family:'courier new', courier;"> 打开assets/www下cordova_plugins.js,发现其中也增加了很多内容:</span></p>
<div class="cnblogs_code">
<pre class="blockcode"><span style="font-family:'courier new', courier;">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.e |
|