1首先要创建cordova项目,添加android平台此处不做详解
2.安装plugman 命令npm install -g plugman
3.cd到你想放置插件代码的文件夹下(建议将所有的自定义插件放到一个专门的文件夹下),创建插件
|
三个参数一次是名称,id,版本号
完成之后的目录结构如下:
DialogPlugin
—src
—www
plugin_id
.js
plugin.xml
4. 在上部生成的文件夹src下创建名为android的文件夹
然后创建java类ToastShow
public
class
ToastShow extends
CordovaPlugin{
@Override
public
boolean
execute(String action, CordovaArgs args,
final
CallbackContext callbackContext)
throws
JSONException {
if
(
"show".equals(action)){
//此处是要实现的功能 返回函数
callbackContext.success("参数"); callbackContext.error("参数");
return
true
;
}
return
super
.execute(action, args, callbackContext);
}
}
5.修改www下js
var exec = require('cordova/exec');
module.exports = {
//注意方法名称show与参数中的show要一致
show: function (arg0, success, error) {
exec(success, error, 'ToastShow', 'show', [arg0]);
},
save: function (arg0, success, error) {
exec(success, error, 'ToastShow', 'save', [arg0]);
}
}
6.修改plugin.xml
<?xml version='1.0' encoding='utf-8'?>
<plugin id="toast-plugin" version="1.0.0" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<name>toast-plugin</name>
<js-module name="ToastShow" src="www/toast-plugin.js">
<clobbers target="ToastShow" />
</js-module>
<platform name="android">
<config-file target="res/xml/config.xml" parent="/*">
<!-- JS调用时的名字 -->
<feature name="ToastShow">
<!-- value:的值是对应的插件中MyPlugin.java存放的路径 -->
<param name="android-package" value="com.myplugin.ToastShow"/>
</feature>
</config-file>
<!-- src:是插件里存放对应.java的路径, target-dir:安装插件时把.java文件存放的位置,要和上面的value路径对应 -->
<source-file src="src/android/ToastShow.java" target-dir="src/com/myplugin" />
</platform>
</plugin>
注意标红的名称最好设置一致
7.在插件根目录下,该文件夹名称应该是
|
命令中的myplugin_name
执行npm init
8.添加插件 插件地址是该插件在电脑本地的地址 例如:C:\Users\zhaoxin\Desktop\guowang\demo\happyness\plugins-my\database-plugin
9.调用
根据声明的类名和方法调用 例如:ToastPlugin.show('dddddd',success,false) 其中参数要与插件文件夹www下js中声明的一致