手工安装cordova插件到Android工程中

手工安装cordova插件到Android工程中

一、使用环境:
在使用java和H5混合开发的工程(在Android工程中插H5代码-使用cordova做中间件)的时候。
工程不是cordova标准的工程(不是用cordova命令创建的工程)。因此不能使用cordova 安装插件的
命令安装cordova插件,因此需要自己手工安装。
二、分析一个插件包含的内容
一个插件包含以下必不可少的内容:
www/xxx.js                  //js接口
src/android/xxx.java        //android实现代码
src/ios/xxx.m               //ios实现代码
plugin.xml                  //插件配置文件
package.json                //插件版本,依赖,平台等说明 (使用命令安装会要求有这个文件)
三、手工安装插件原理
整个插件安装,要放什么文件到android工程的什么地方,修改什么文件,都在plugin.xml文件里进行了配置。
因此我们只要依次解析plugin.xml文件就会完成整呈现插件安装的全部过程。

下面用我制作的一个插件作为例子来解析:
plugin.xml文件内容如下:
<?xml version='1.0' encoding='utf-8'?>
<plugin id="com.rayleigh.myeasylink" version="0.0.1"
        xmlns="http://apache.org/cordova/ns/plugins/1.0"
        xmlns:android="http://schemas.android.com/apk/res/android">
    <name>EasyLinkPlugin</name>
    <js-module name="EasyLinkPlugin" src="www/EasyLinkPlugin.js">
        <clobbers target="cordova.plugins.EasyLinkPlugin" />
    </js-module>
    <platform name="android">
    <config-file parent="/*" target="res/xml/config.xml">
        <feature name="EasyLinkPlugin">
            <param name="android-package" value="com.rayleigh.myeasylink.EasyLinkPlugin" />
        </feature>
    </config-file>

        <config-file parent="/manifest" target="AndroidManifest.xml">
            <!-- put uses-permission here -->
            <uses-permission android:name="android.permission.INTERNET" />
            <uses-permission  android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>
        </config-file>

    <source-file src="src/android/EasyLinkPlugin.java" target-dir="src/com/rayleigh/myeasylink/EasyLinkPlugin" />
        <source-file src="src/android/easylink.jar" target-dir="libs" />
</platform>
</plugin>
四、相关文件路径说明
使用cordova插件:肯定在assets目录要放置以下这些文件:
/plugin目录              //存放插件的js文件的文件夹
corodova.js             //cordova库文件
cordova_plugins.js      //插入的插件记录文件
注意:这个plugin目录和corodova.js和cordova_plugins.js是在同一个父目录下:其父目录可能是assets或assets/www,或者assets/js
五、人工解析plugin.xml并进行手工安装
<1.1>解析plugin.xml部分:
    <plugin id="com.rayleigh.myeasylink" version="0.0.1"
            xmlns="http://apache.org/cordova/ns/plugins/1.0"
            xmlns:android="http://schemas.android.com/apk/res/android">
        <name>EasyLinkPlugin</name>
<1.2>手工安装部分:
    现在我们添加插件,需要在cordova_plugins.js文件文件中添加你要添加插件的信息:
  
 module.exports = [
        //这是自己的插件的内容:
        {
            "id": "com.rayleigh.myeasylink.EasyLinkPlugin",                     //由plugin.xml里的id和name组成
            "file": "plugins/com.rayleigh.myeasylink/www/EasyLinkPlugin.js",    //EasyLinkPlugin.js所在的路径(根据实际配置)
            "pluginId": "com.rayleigh.myeasylink",                              //plugin.xml里面的id
            "clobbers": [           
                "cordova.plugins.EasyLinkPlugin"                                //plugin.xml:<clobbers target="cordova.plugins.EasyLinkPlugin" />
            ]
        }
    ]
    module.exports.metadata =
    // TOP OF METADATA
    {
        //在这里填入自己插件的额名字和版本号
        "com.rayleigh.myeasylink": "0.0.1"
    };
    // BOTTOM OF METADATA
<2.1>解析plugin.xml部分:
    <js-module name="EasyLinkPlugin" src="www/EasyLinkPlugin.js">
        <clobbers target="cordova.plugins.EasyLinkPlugin" />
    </js-module>
<2.2>手工安装部分:
    复制/www/xxx.js文件到plugin目录下面
    这是是复制EasyLinkPlugin.js到./plugin目录下
<3.1>解析plugin.xml部分:
 <platform name="android">
        <config-file parent="/*" target="res/xml/config.xml">    //在Android工程的res\xml\config.xml文件里插入以下<feature></feature>的内容
            <feature name="EasyLinkPlugin">
                <param name="android-package" value="com.rayleigh.myeasylink.EasyLinkPlugin" />
            </feature>
        </config-file>

            <config-file parent="/manifest" target="AndroidManifest.xml"> //在"AndroidManifest.xml"文件内的/manifest标签内插入以下权限内容(注意标签)
                <!-- put uses-permission here -->
                <uses-permission android:name="android.permission.INTERNET" />
                <uses-permission  android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>
            </config-file>

        //把source-file的.java文件复制到target-dir目录下
        <source-file src="src/android/EasyLinkPlugin.java" target-dir="src/com/rayleigh/myeasylink/EasyLinkPlugin" />

        //把source-file的.jar文件复制到target-dir目录下
        <source-file src="src/android/easylink.jar" target-dir="libs" />
    </platform>
<3.2>手工安装部分:
    插件里面有Android平台和ios平台,现在我们把Android的安装注释,放置到Android工程的对应目录里面

六、插件安装完成
经过以上步骤整个插件就安装完成了,上面对于plugin.xml文件的解析,对于cordova插件开发也是有帮助的,插件开发是这个过程的逆过程。
即把需要复制的文件按照格式记录到plugin.xml文件即可。

猜你喜欢

转载自blog.csdn.net/robert_cysy/article/details/77073159