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
cordova 开发属于自己的插件---android的更多相关文章
- Cordova开发App入门之创建android项目
Apache Cordova是一个开源的移动开发框架.允许使用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发. 应用在每个平台的具体执行被封装了起来,并依靠符合标准的API绑 ...
- cordova开发插件,并在android studio中开发、调试
之前用过cordova Lib包装H5页面,自己写插件,但做法是野路子,不符合cordova插件的开发思路,这次项目又需要包装H5页面,同时需要自定义插件.所以又折腾了一次cordova自定义插件. ...
- Cordova webapp实战开发:(4)Android环境搭建
在<Cordova webapp实战开发:(3)后面可能会学到的东西>中我们说了一下后续大致包括的内容,今天我们继续.上周我在掌中广材集成了友盟的社交分享,今天想集成iOS应该很顺利的,但 ...
- Cordova开发总结(插件篇)
最近刚刚做完一个用Cordova开发了一款电子商务的应用.在选用Cordova前,我有考察过,国内的Appcan, Apicloud等等的解决方案.其实Appcan,ApiCloud的混合方案挺完整的 ...
- [Android教程] Cordova开发App入门(一)创建android项目
前言 Apache Cordova是一个开源的移动开发框架.允许使用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发. 应用在每个平台的具体执行被封装了起来,并依靠符合标准的A ...
- cordova开发自己定义插件
以下是自己定义cordova插件的基本入门.做插件的小白可以參考一下哈,兴许会更新插件的进阶博客,希望大家可以共同学习共同进步 1.环境搭建 cordova插件开发前须要安装一些软件和配置环境 1.1 ...
- Cordova - 使用Cordova开发iOS应用实战3(添加Cordova控制台插件)
Cordova - 使用Cordova开发iOS应用实战3(添加Cordova控制台插件) 前文介绍了通过 Safari 的 Web检查器,可以看到控制台输出的信息.但有时这样调试代码不太方便,如果在 ...
- 使用 Android Studio 开发 widget 安卓桌面插件
•What AppWidget 即桌面小部件,也叫桌面控件,就是能直接显示在Android系统桌面上的小程序: 这么说可能有点抽象,看图: 像这种,桌面上的天气.时钟.搜索框等等,都属于 APP Wi ...
- 搭建 AngularJS+Ionic+Cordova 开发环境并运行一个demo
目前的手机APP有三类:原生APP,WebAPP,HybridApp:HybridApp结合了前两类APP各自的优点,越来越流行. Cordova就是一个中间件,让我们把WebAPP打包成Hybrid ...
随机推荐
- 浅谈Redis数据库的键值设计(转)
丰富的数据结构使得redis的设计非常的有趣.不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与.redis的DBA需要熟悉 ...
- CF 486D vailid set 树形DP
As you know, an undirected connected graph with n nodes and n - 1 edges is called a tree. You are gi ...
- CF 15/09/23
CF580A 给出一个数列,求最长不下降子序列(连续) 直接DP,O(n) CF580B 主人公有n个朋友,每一个朋友有2个属性:m,sat 现在他想邀请部分朋友,邀请的人满足MAX_M-MIN_M& ...
- 实现读入一个彩色视频文件并以灰度格式输出这个视频文件,学习opencv例2-10
#include "cv.h"#include "highgui.h"int main(int argc,char* argv[]){ //书本中的main没有 ...
- [实变函数]5.3 非负可测函数的 Lebesgue 积分
本节中, 设 $f,g,f_i$ 是可测集 $E$ 上的非负可测函数, $A,B$ 是 $E$ 的可测子集. 1 定义: (1) $f$ 在 $E$ 上的 Lebesgue 积分 ...
- 读《java核心技术卷一》有感
过去一个多月了吧.才囫囵吞枣地把这书过了一遍.话说这书也够长的,一共706页.我从来不是个喜欢记录的人,一直以来看什么书都是看完了就扔一边去,可能有时候有那么一点想记录下来的冲动,但算算时间太紧,很多 ...
- NodeJS 学习资料
1. npm 除Node本身提供的API外,现在有不少第三方模块可极大的提高开发效率,npm就是Node的软件包管理器,可以用它安装所需软件包并发布自己为nodejs写的软件包. npm安装node扩 ...
- ylbtech-Unitity-CS:Generics
ylbtech-Unitity-CS:Generics 1.A,效果图返回顶部 Unsorted List: Raul:35 Alessandro:30 Maria:72 Hiroyuki:108 A ...
- Ecshop(二次开发) - 后台添加左侧菜单导航
1.链接地址:修改 admin\includes\inc_menu.php 文件. $modules['17_syn_data']['view_syn'] = 'synchroni ...
- Linux vmstat命令--监控CPU 性能分析
top是给Linux设计的.在FreeBSD VM里面的Free概念和其他OS完全不同,使用top查看Free内存对于FreeBSD来说可以说没什么意义.正确的方法是看vmstat. vmstat是V ...