cordova 开发属于自己的插件---android
还是需要开发出自己的插件的...
我的cordova version is 4.0.0
1.需要新建一个文件夹为 myplugin
1.1在myplugin文件夹下 新建 plugin.xml文件 www文件夹 src文件夹
1.2 在src文件夹下 新建 Android iOS 文件夹等
如图
2. 在Android文件夹下console.java 文件
package cn.debi.cordova;
import org.apache.cordova.CordovaWebView;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CordovaInterface;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.util.Log;
public class Console extends CordovaPlugin { public boolean execute(String action, JSONArray args, CallbackContext callbackContext)
throws JSONException {
String databack=args.getString();
final String ACTIVITY_TAG="MyAndroid"; if (action.equals("Consolelog")) {
Log.i(ACTIVITY_TAG,databack);
callbackContext.success(databack);
return true;
}
return false;
}
}
3.在www文件夹下新建 console.js文件
var exec = require('cordova/exec'); exports.setConsole = function(messege,success, error) {
exec(success, error, "Console", "Consolelog", [messege]); //console 为java的类名,consolelog 为action 的字符串
};
4. 在plugin.xml
<?xml version="1.0" encoding="utf-8"?>
<plugin id="cn.debi.cordova" version="0.0.1"
xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<name>Console</name>
<description>Description</description>
<js-module name="Console" src="www/Console.js">
<clobbers target="cordova.plugins.Console"/>
</js-module>
<platform name="android">
<config-file parent="/*" target="res/xml/config.xml">
<feature name="Console">
<param name="android-package" value="cn.debi.cordova.Console"/>
</feature>
</config-file>
<source-file src="src/android/Console.java" target-dir="src/cn/debi/cordova"/>
</platform>
</plugin>
其中
<plugin id="cn.debi.cordova" version="0.0.1">
</plugin> 中的id 可以随便写 ,它是插件的标识符 ;version 可以随便写
- description:描述信息 随便写了
- js-module:对应我们的 javascript 文件,
src
属性指向www/console.js name 在我们调用js的时候用到 (如:
var extraInfo = cordova.require('cn.debi.cordova.Console');
),我们也可以用 <clobbers></clobbers> 里面的target 的字符串则是 module.exports 导出来的函数赋值 该字符串;这样就简单了许多 如
cordova.plugins.Console.setConsole()
- platform:支持的平台,这里仅仅用到了 android
<param name="android-package" value="cn.debi.cordova.Console"/> 中的cn.debi.cordova 是console.java 的package 包名(也是路径)
Console是类名;
<source-file src="src/android/Console.java" target-dir="src/cn/debi/cordova"/> target-dir 是copy到你的project的路径
6. 使用插件的方法 即调用插件
var extraInfo = cordova.require('cn.debi.cordova.Console'); //require 的字符串为 plugin.xml文件中的ID + js-module 里面的name
extraInfo.setConsole('cole.log',function(message) {
alert(message);
}, function(message) {
alert(message);
});
// 第二种方法
//cordova.plugins.Console.setConsole('cole.log',function(message) { //注意到这里的cordova.plugins.Console 就是plugin.xml文件中的js-module 的<clobbers//></clobbers> 里面的target 的字符串
// alert(message);
// }, function(message) {
// alert(message);
// });
这里的cordova.require('cn.debi.cordova.Console')里面的 cn.debi.cordova 就是plugin.xml 中的id ;Console 则是js-module 里面的name
即调用console.js 导出里面的方法
~ 而 extraInfo.setConsole()就是调用导出的方法
7. 忘了要添加插件 了 O(∩_∩)O~~
cordova plugin add myplugin #目录名称,也可以是 git 的地址
cordova plugin add /your/plugin/address/myplugin
最新文章
- Spring in Action 学习笔记二-DI
- Centos7 关闭防火墙(转)
- python列表、元祖、字典
- Unity随机随学
- echo
- python黑帽子源码
- spinlock自旋锁de使用
- GOJ1150(矩阵快速幂)
- WebAPI上传大文件
- java使用poi自定义excel标题头并导出(springmvc+poi)
- C++ set用法以及迭代器用法
- PHP字符串处理 单引号 双引号 heredoc nowdoc 定界符
- win7系统标准用户恢复administrator账号方法
- Eclipse运行时发生An internal error occurred during:“**************” 的解决办法
- VUE中过了一遍还不熟悉的东西
- xcode 自动签名、手动签名
- PAT甲题题解-1115. Counting Nodes in a BST (30)-(构建二分搜索树+dfs)
- http-equiv=";Refresh"; 实现定时刷新页面
- CentOS Linux解决Device eth0 does not seem to be present 但是没有发现eth1
- 设计模式之迭代器模式(Iterator Pattern)
热门文章
- C#如何使用HttpWebRequest、HttpWebResponse模拟浏览器抓取网页内容
- jQuery插件:用于获取元素自身的HTML内容
- Python 向上取整的算法
- Android系统onKeyDown监控/拦截/监听/屏蔽返回键、菜单键和Home键
- ylbtech-dbs:ylbtech-3,BarCode(条码资源系统)
- JAVA 对象的转型
- RSpec自定义matcher
- 20145305《JAVA程序设计》课程总结
- delphi 调用百度地图WEBSERVICE转换GPS坐标 转
- Dubbo 应用容器