Cordova入门系列(三)Cordova插件调用

论坛 期权论坛     
选择匿名的用户   2021-6-2 15:46   886   0
<div class="blogpost-body" id="cnblogs_post_body">
<p><span style="font-family:&#39;courier new&#39;, courier;">版权声明:本文为博主原创文章,转载请注明出处</span></p>
<p><span style="font-family:&#39;courier new&#39;, courier;"> </span></p>
<p><span style="font-family:&#39;courier new&#39;, courier;"> </span></p>
<p><span style="font-family:&#39;courier new&#39;, courier;">  上一章我们介绍了cordova android项目是如何运行的,这一章我们介绍cordova的核心内容,插件的调用。演示一个例子,通过cordova插件,去调用摄像头。</span></p>
<p><span style="font-family:&#39;courier new&#39;, courier;"> </span></p>
<p><span style="font-family:&#39;courier new&#39;, courier;">一、插件的安装以及基本信息:</span></p>
<p><span style="font-family:&#39;courier new&#39;, courier;">  我们先在项目中安装调用摄像头的插件<span class="s1">cordova-plugin-camera,cd到hello下,执行:</span></span></p>
<div class="cnblogs_code">
  <pre class="blockcode"><span style="font-family:&#39;courier new&#39;, courier;">cordova plugin add cordova-plugin-camera</span></pre>
</div>
<p><span style="font-family:&#39;courier new&#39;, courier;">  然后它会为我们的hello/plugins文件夹下添加cordova-plugin-camera插件(这个是整个这个插件模块,可用于安卓和ios。卸载插件用cordova plugin remove cordova-plugin-camera);</span></p>
<p><span style="font-family:&#39;courier new&#39;, courier;">  同时也会在我们的platforms/android/platform_www/plugins下面添加对应的安卓的插件cordova-plugin-camera(这个是根据对应的平台生成的对应的插件内容,只可用于本安卓平台);</span></p>
<p><span style="font-family:&#39;courier new&#39;, courier;">  也会在我们的资源文件夹assets/www/plugins下添加cordova-plugin-camera插件(这个资源文件夹下的所有的文件,才是真正的app运行的时候调用的,加载的文件);</span></p>
<p><span style="font-family:&#39;courier new&#39;, courier;">  还会为我们的src下添加<em>org.apache.cordova.camera包以及对应的java文件。</em></span></p>
<p><span style="font-family:&#39;courier new&#39;, courier;">  为什么要在项目中加这么多,这只是cordova的机制,我们不作重点研究。这三个目录是有不同的作用的,但我们只重点关注assets/www目录下。</span></p>
<p><span style="font-family:&#39;courier new&#39;, courier;"> </span></p>
<p><span style="font-family:&#39;courier new&#39;, courier;">  除了上面这些,加完这个插件也会改变一些其他文件的内容,首先看res/xml/config.xml,最后多了一项配置信息:</span></p>
<div class="cnblogs_code">
  <pre class="blockcode"><span style="font-family:&#39;courier new&#39;, courier;">&lt;feature name&#61;&#34;Camera&#34;&gt;
        &lt;param name&#61;&#34;android-package&#34; value&#61;&#34;org.apache.cordova.camera.CameraLauncher&#34; /&gt;
&lt;/feature&gt;</span></pre>
</div>
<p><span style="font-family:&#39;courier new&#39;, courier;">  feature · name:&#34;js中间件通过它调用java方法&#34;。</span><br><span style="font-family:&#39;courier new&#39;, courier;">   (中间件就是我们的插件对应的一些js文件。我们写的js程序通过这些插件(中间件)去调用Jjava原生内容)</span><br><span style="font-family:&#39;courier new&#39;, courier;">  param · name:&#34;android-package&#34;     value:原生插件类的包类路径。</span></p>
<p><br><span style="font-family:&#39;courier new&#39;, courier;">  打开assets/www下cordova_plugins.js,发现其中也增加了很多内容:</span></p>
<div class="cnblogs_code">
  <pre class="blockcode"><span style="font-family:&#39;courier new&#39;, courier;">cordova.define(&#39;cordova/plugin_list&#39;, function(require, exports, module) {
module.exports &#61; [
    {
        &#34;id&#34;: &#34;cordova-plugin-camera.Camera&#34;,
        &#34;file&#34;: &#34;plugins/cordova-plugin-camera/www/CameraConstants.js&#34;,
        &#34;pluginId&#34;: &#34;cordova-plugin-camera&#34;,
        &#34;clobbers&#34;: [
            &#34;Camera&#34;
        ]
    },
    {
        &#34;id&#34;: &#34;cordova-plugin-camera.CameraPopoverOptions&#34;,
        &#34;file&#34;: &#34;plugins/cordova-plugin-camera/www/CameraPopoverOptions.js&#34;,
        &#34;pluginId&#34;: &#34;cordova-plugin-camera&#34;,
        &#34;clobbers&#34;: [
            &#34;CameraPopoverOptions&#34;
        ]
    },
    {
        &#34;id&#34;: &#34;cordova-plugin-camera.camera&#34;,
        &#34;file&#34;: &#34;plugins/cordova-plugin-camera/www/Camera.js&#34;,
        &#34;pluginId&#34;: &#34;cordova-plugin-camera&#34;,
        &#34;clobbers&#34;: [
            &#34;navigator.camera&#34;
        ]
    },
    {
        &#34;id&#34;: &#34;cordova-plugin-camera.CameraPopoverHandle&#34;,
        &#34;file&#34;: &#34;plugins/cordova-plugin-camera/www/CameraPopoverHandle.js&#34;,
        &#34;pluginId&#34;: &#34;cordova-plugin-camera&#34;,
        &#34;clobbers&#34;: [
            &#34;CameraPopoverHandle&#34;
        ]
    }
];
module.e
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP