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 ...
随机推荐
- 【STM32H7教程】第3章 STM32H7整体把控
完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第3章 STM32H7整体把控 初学STM32H7一 ...
- PHP全栈学习笔记9
php的会话控制,什么是会话控制,http等. 什么是会话控制思想,http协议. cookie 和 session http是超文本传输协议,是网络上最广泛的一种网络协议. http最大特点是无连接 ...
- Java读取Excel的另一种方法
除了用poi读取Excel的表格外,还可用ExcelHelper读取Excel.代码一例 String[] fieldNames = new String[] { "studentId&qu ...
- .net4.5部署到docker容器
.net4.5部署到docker容器 部署到windows容器 部署到linux容器 部署到windows容器 由于.net本身就是运行在windows平台的,所以它与windows容器也是更加适合, ...
- SLAM+语音机器人DIY系列:(二)ROS入门——4.如何编写ROS的第一个程序hello_world
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...
- 利用SHA-1算法和RSA秘钥进行签名验签(带注释)
背景介绍 1.SHA 安全散列算法SHA (Secure Hash Algorithm)是美国国家标准和技术局发布的国家标准FIPS PUB 180-1,一般称为SHA-1.其对长度不超过264二进制 ...
- DSAPI 字符串和文件转Md5字符串
方法列表: 字符串转MD5字符串(ByVal 要转换的字符串 As String, Optional 转换格式 As MD5格式 = MD5格式.小写32位) As String 文件转MD5字符串( ...
- jsp内置对象-response对象
一.概念 隐含对象response是javax.servlet.HttpServletResponse接口实现类的对象.response对象封装了JSP产生的响应,用于响应客户端的请求,向客户端输出信 ...
- Django 使用 locals() 函数
locals() 函数会以字典类型返回当前位置的全部局部变量. 在 views.py 中添加 from django.shortcuts import render,HttpResponse,rend ...
- php中读取中文文件夹及文件报错
php读取时出现中文乱码 一般php输出中出现中文乱码我们可用 header ('content:text/html;charset="utf-8"'); php中读取中文文件夹及 ...