Cordova

作者: guozhk | 来源:发表于2018-06-09 15:31 被阅读0次

cordova 混合开发 本文章用android项目为例 ios 项目类似 添加平台不一样

环境安装

1.先安装Node.js

创建cordova项目

1.cordova create 目录名称 (包名) (app名称)
  如:cordova create testCordova io.cordova.hellocordova testCordova
2.添加平台
  cordova platforms add android
  移除android平台支持
  cordova platforms rm android
3.编译
  android平台: cordova build

编写自定义插件

需要命令 plugman npm install -g plugman
1.创建插件:
plugman create --name XXX--plugin_id XXX --plugin_version XXX

plugman create --name CustomToast --plugin_id io.cordova.hellocordova.customToast --plugin_version 1.0.0

2.进入到插件目录 添加平台

plugman platform add --platform_name android

3.修改插件配置文件plugin.xml(可以不修改 根据需要修改)

<?xml version='1.0' encoding='utf-8'?>
<plugin xmlns:android="http://schemas.android.com/apk/res/android"
    id="io.cordova.hellocordova.customToast"
    version="1.0.0"
    xmlns="http://apache.org/cordova/ns/plugins/1.0">
     <!--name  与 创建时候 name对应-->
    <name>CustomToast</name>
     <!--name  与 创建时候 name对应-->
    <js-module
        name="CustomToast"
        src="www/CustomToast.js">
        <clobbers target="cordova.plugins.CustomToast" />
    </js-module>
    <platform name="android">
        <config-file
            parent="/*"
            target="res/xml/config.xml">
            <feature name="CustomToast">
             <!--name  与 创建时候 name对应-->
                <param
                    name="android-package"
                    value="io.cordova.hellocordova.customToast.CustomToast" />
            </feature>
        </config-file>
         <!--name  与 创建时候 name对应-->
        <config-file
            parent="/*"
            target="AndroidManifest.xml"></config-file>
             <!--name  与 创建时候 name对应-->
        <source-file
            src="src/android/CustomToast.java"
            target-dir="src/io/cordova/hellocordova/plugin"/>
    </platform>
</plugin>

3.生成package.json 文件
npm init
插件生成完成。
4.添加到项目中
进入到项目android平台下执行:
cordova plugin add XXX (插件路径)

cordova plugin add D:\cordovaWorkplace\plugins\CustomToast 
注意:
cordova plugin list  查看项目添加的插件
cordova plugin rm XX(插件id) 删除某个插件
cordova plugin add <path>  添加插件

完毕:
可在项目中查看对应的 配置文件变化
res/xml/config.xml文件

<?xml version='1.0' encoding='utf-8'?>
<widget id="io.cordova.hellocordova" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    ...
    ...
    <!-- 新生成插件-->
     <feature name="CustomToast">
        <param name="android-package" value="io.cordova.hellocordova.customToast.CustomToast" />
    </feature>
</widget>

assets/www/cordova_plugins.js

cordova.define('cordova/plugin_list', function(require, exports, module) {
module.exports = [
    ...
    ...
    ,
  {
    "id": "io.cordova.hellocordova.customToast.CustomToast",
    "file": "plugins/io.cordova.hellocordova.customToast/www/CustomToast.js",
    "pluginId": "io.cordova.hellocordova.customToast",
    "clobbers": [
      "cordova.plugins.CustomToast"
    ]
  }
];
module.exports.metadata = 
// TOP OF METADATA
{
  "cordova-plugin-whitelist": "1.3.3",
  "io.cordova.hellocordova.customToast": "1.0.0"
    ...
    ...
};
// BOTTOM OF METADATA
});

测试

在android项目中
assets/www/index.html中添加按钮 编写对应的js事件:
如:在body中添加

<body>
...
...
<button id="CustomToast" style="width:200px;height:50px;">CustomToast</button>
...
...
<script type="text/javascript">
    document.getElementById("CustomToast").addEventListener("click", cToast);
    function cToast(){
           cordova.plugins.CustomToast.coolMethod("sdfg",onSuccess,onFail);

                function onSuccess(imageData) {
                    alert('onSuccess because: ' + imageData);
                }

                function onFail(message) {
                    alert('Failed because: ' + message);
                 }
     }
</script>
<body>

运行代码 点击按钮:


device-2018-06-09-152750.png

相关文章

网友评论

    本文标题:Cordova

    本文链接:https://www.haomeiwen.com/subject/riqznxtx.html