Cordova与原生交互--传值

cordova与原生的交互都是基于插件的形式提供(例如,获取设备信息、网络状态等)。依据项目业务就需要自定义插件

1.使用plugman创建MiPlugin插件,并安装到项目中(会生成对应的模板文件 plugin.xml MiPlugin.js MiPlugin.java 等文件)

1、安装plugman
npm install -g plugman
2、创建插件
plugman create --name MiPlugin --plugin_id cordova-plugin-mi --plugin_version 1.0.0

cd MiPlugin 

3. 增加Android平台
plugman platform add --platform_name android

4. 生成package.json
npm init

5. 安装本地插件
cordova plugin add 本地路径
  1. cordova plugin list查看插件是否安装成功

MiPlugin.js

在js文件添加hello方法

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

 // Reference name for the plugin
 PLUGIN_NAME = 'MiPlugin';

  // Plugin methods on the native side that can be called from JavaScript
  pluginNativeMethod = {
    COOLMETHOD: 'coolMethod',
    HELLO : 'hello'
  }

  var MiPlugin = {
    coolMethod : function (arg0, success, error) {
        exec(success, error, PLUGIN_NAME, pluginNativeMethod.COOLMETHOD, [arg0]);
    },
    helloworld : function (arg0,success,error) {
        exec(success, error, PLUGIN_NAME, pluginNativeMethod.HELLO, [arg0]);
    }
  }

  module.exports = MiPlugin;

MiPlugin.java

在MiPlugin.java添加对应的hello方法

public class MiPlugin extends CordovaPlugin {

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

    private void coolMethod(String message, CallbackContext callbackContext) {
        if (message != null && message.length() > 0) {
            callbackContext.success(message);
        } else {
            callbackContext.error("Expected one non-empty string argument.");
        }
    }

    private void jsHello(String message, CallbackContext callbackContext) {
        System.out.println("hello world");
        callbackContext.success();
    }
}


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,268评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 中午走在路上的时候忽然间又想到了《解忧杂货店》,联想这几天的工作事情,觉得越来越没有意思,越发想逃离。十月份的时候...
    江南无雪10阅读 123评论 0 0
  • 班长这两个字似乎在我的生命中就没有消失过,原来
    三羊开泰杨晓鹏阅读 271评论 1 0
  • ,,让你的能力配上你的野心。
    前天阅读 372评论 0 0