版权声明:本文为博主原创文章,未经博主允许不得转载。 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
版权声明:本文为博主原创文章,转载请附上博文链接!