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 本地路径

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();

}

}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐