cordova 自定义 plugin
版权声明:本文为博主原创文章,未经博主允许不得转载。 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
版权声明:本文为博主原创文章,转载请附上博文链接!
cordova 自定义 plugin的更多相关文章
- Cordova与现有框架的结合,Cordova插件使用教程,Cordova自定义插件,框架集成Cordova,将Cordova集成到现有框架中
一.框架集成cordova 将cordova集成到现有框架中 一般cordova工程是通过CMD命令来创建一个工程并添加Android.ios等平台,这样的创建方式可以完整的下载开发过程中所需要的的插 ...
- Cordova自定义插件开发
Cordova自定义插件开发 一.创建Cordova项目 在创建项目前请确保安装Cordova Cordova环境配置:https://www.w3cschool.cn/cordova/cordova ...
- cordova自定义插件开发流程
cordova自定义插件开发:1.cordova安装:npm install -g cordova2.plugman安装:npm install -g plugman3.cordova创建工程:cor ...
- cordova添加plugin
cordova添加plugin #在线安装 cordova create chankoujie com.example.chankoujie ChanKouJie cordova plugin add ...
- Gradle学习系列之十——自定义Plugin(本系列完)
在本系列的上篇文章中,我们讲到了如何自定义Task类型,在本篇文章中,我们将讲到如何自定义Plugin. 请通过以下方式下载本系列文章的Github示例代码: git clone https://gi ...
- vue---vue2.x自定义plugin,给vue添加全局方法,原型上增加全局方法
1. 自定义plugin.js export default{ install(Vue,options); { Vue.prototype.toStringTwo=(str)=>( ('0000 ...
- Cordova自定义插件
项目原因需要自定义Cordova插件,下面把实现过程记录以便将来查阅.工程为Eclipse下的Android工程,该工程已经引入Cordova.Cordova版本4.0.2.1.定义插件类OpenAp ...
- cordova自定义插件的创建过程
最近学习了cordova插件,记录一下大概的过程,仅供参考. 前期的配置就不记录了网上好多. 在简书上从新写了一个更详细的cordova插件教程,有需要的可以点这里进去看看. 第一步 创建一个cord ...
- ionic2/cordova自定义插件集成aar包
一.准备自定义插件 1. 准备:安装plugman npm install -g plugman 2. 新建组件 plugman create --name MyPlugin --plugin_id ...
随机推荐
- 【spring源码分析】IOC容器初始化(总结)
前言:在经过前面十二篇文章的分析,对bean的加载流程大致梳理清楚了.因为内容过多,因此需要进行一个小总结. 经过前面十二篇文章的漫长分析,终于将xml配置文件中的bean,转换成我们实际所需要的真正 ...
- 解决 Mac launchpad 启动台 Gitter 图标无法删除的问题
Mac 删除应用非常简单,将应用拖到回收站就删除了.或者进入应用程序文件夹,选中程序,command + delete 就删除了应用,这也是删除文件的快捷键. 但是,安装 Gitter 后,删除了应用 ...
- 【Git之旅】1.Git常用命令
1.创建初始化版本库 git init 2.将文件添加到版本库中 git add index.html (添加到暂存区) git add . 命令让Git把当前目录及目录中的文件都添加到版本库里 gi ...
- .NET Core微服务之基于EasyNetQ使用RabbitMQ消息队列
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.消息队列与RabbitMQ 1.1 消息队列 “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更 ...
- 完美解决phpstudy安装后mysql无法启动(无需删除原数据库,无需更改任何配置,无需更改端口)直接共存
PHPstudy与原Mysql兼容解决 一.前言 今天学习php,当然是要先安装好运行环境了,phpstyudy是一个运行php的集成环境, 一键安装对新手很友好,与时作为一个新手,便跟着教程安装了p ...
- 图像检索(2):均值聚类-构建BoF
在图像检索时,通常首先提取图像的局部特征,这些局部特征通常有很高的维度(例如,sift是128维),有很多的冗余信息,直接利用局部特征进行检索,效率和准确度上都不是很好.这就需要重新对提取到的局部特征 ...
- jquery快速入门(三)
捕获内容和属性 1.DOM 操作 获得内容 - text().html() 以及 val() text() - 设置或返回所选元素的文本内容,如果不带值则是返回值,如果带值则是修改值,如:$('p') ...
- .NET(C#)能开发出什么样的APP?盘点那些通过Smobiler开发的移动应用
.NET程序员一定最熟悉所见即所得式开发,熟悉的Visual Studio开发界面,熟悉的C#代码. Smobiler也是因为具备这样的特性,使开发人员,可以在VisualStudio上,像开发Win ...
- FineUIMvc表格数据库分页,使用CYQ.Data组件
首先看下前台 View 的定义: @(F.Grid() .EnableCheckBoxSelect(true) .Width(850) .ShowHeader(true) .ShowBorder(tr ...
- IL中间语言指令大全
一些 IL 语言指令解释: Public field Static Beq 如果两个值相等,则将控制转移到目标指令.Public field Static Beq_S ...