• cordova 自定义 plugin


    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30879415/article/details/81265455
    准备工作
    安装cordova
    npm install -g cordova
    1
    创建cordova工程并添加android平台
    cordova create 项目名 包名
    cd 项目名
    cordova platform add android
    1
    2
    3
    安装plugman
    npm install -g plugman
    1
    创建plugin
    创建插件(本博客demo插件名mytoast,包名com.digichain.mytoast)
    plugman create --name 插件名 --plugin_id 插件id --plugin_version 插件版本
    // 插件id,比如 com.digichain.xin
    // 插件版本,比如 1.0.0
    1
    2
    3
    plugin.xml
    plugin{
    id: "插件id",
    version: "插件版本",
    name: "插件名称",
    js-module: {
    name: "模块名称",
    src: "js 文件地址",
    clobbers: {
    target: "H5调用中间件方法"
    }
    },
    platform: {
    source-file: {
    src: "类名",
    target-dir:"插件文件复制到原生项目的位置",
    feature: {
    name: "js中间件通过它调用原生方法"
    },
    uses-permission: "开通的权限"
    }
    }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    添加平台
    plugman platform add --platform_name andorid/ios
    //添加后src下会出现android
    //并且初始化了java文件、js文件以及plugin.xml
    1
    2
    3
    mytoast.java 和 mytoast.js
    首先我们来看mytoast.java

    public class mytoast extends CordovaPlugin {

    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
    if (action.equals("showToast")) {
    String message = args.getString(0);
    this.showToast(message, callbackContext);
    return true;
    }
    return false;
    }

    private void showToast(String message, CallbackContext callbackContext) {
    if (message != null && message.length() > 0) {
    Activity activity = this.cordova.getActivity();
    android.widget.Toast.makeText(activity, message, Toast.LENGTH_SHORT).show();
    callbackContext.success(message);
    } else {
    callbackContext.error("Expected one non-empty string argument.");
    }
    }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    plugin的方法格式大致如此,其中execute方法是必须的,外部调用方法传递action字段,根据action我们可以调用底层的相关程序,并且通过CallbackContext回调success方法或error方法。这里,我们实现了showToast方法,当action为”showToast”字段视,进行if(action.equals(“showToast”)){}内的操作。

    相应的,mytoast.js 文件中我们也要实现相应的方法调用

    var exec = require('cordova/exec');

    exports.showToast = function (msg, success, error) {
    exec(success, error, 'mytoast', 'showToast', [msg]);
    };
    1
    2
    3
    4
    5
    6
    添加package.json
    //在toast插件文件夹中直接init 一个
    npm init
    1
    2
    大功告成!!!!!

    安装
    创建cordova项目并进行安装
    cordova create testplugin com.digichain.testplugin
    cordova platform add android
    cordova plugins add 插件地址
    1
    2
    3
    在/www/js/index/js下添加事件进行测试,运行一下
    cordova run android
    1
    okkkkkkkkkkkkk!!!!!!!!完美!
    ---------------------
    作者:陈广鹏
    来源:CSDN
    原文:https://blog.csdn.net/qq_30879415/article/details/81265455
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    MySQL + Atlas --- 部署读写分离(实现,其他的技术有参考文档)
    基于Redis、Storm的实时数据查询实践
    Redis 配置
    Redis 安装
    redis简介
    Java-Enumeration总结
    spring源码剖析(四)自定义标签解析流程
    svn 把主干合到分支 分支合到主干
    关于Class.getResource和ClassLoader.getResource的路径问题
    instanceof, isinstance,isAssignableFrom的区别
  • 原文地址:https://www.cnblogs.com/Jeely/p/10791182.html
Copyright © 2020-2023  润新知