[Cordova] Plugin里使用Android Library
[Cordova] Plugin里使用Android Library
前言
开发Cordova Plugin的时候,在Native Code里使用第三方Library,除了可以加速项目的时程、也避免了重复发明轮子的窘境。本篇文章介绍如何在Cordova的Plugin里使用Android Library,主要为自己留个纪录,也希望能帮助到有需要的开发人员。
参考数据:

建立
Android中的第三方Library,除了可以从网络上取得之外,也可以依照下列文章的步骤,建立一个自己的Android Library:「mylibrary.jar」。后续步骤,会拿这个mylibrary.jar做为第三方Library来使用。
接着要动手撰写Cordova Plugin来使用Android Library,开发人员可以依照下列文章的步骤,建立一个自己的Cordova Plugin:「clk-cordova-sample」。后续步骤,会拿这个clk-cordova-sample做为Plugin主体来使用。
- 参考数据:[Cordova] Plugin开发入门
使用
完成上列两个步骤之后,开发人员会拥有Cordova Plugin:「clk-cordova-sample」、以及Android Library:「mylibrary.jar」。接着将mylibrary.jar放到clk-cordova-sample的src\android文件夹里,并且修改clk-cordova-sample的plugin.xml,定义Cordova编译的时候,将mylibrary.jar加入到平台项目的文件夹来进行编译。
加入mylibrary.jar
<source-file src="src/android/mylibrary.jar" target-dir="libs" />
完整plugin.xml
<?xml version="1.0" encoding="UTF-8"?> <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
id="clk-cordova-sample"
version="1.0.0"> <!-- metadata -->
<name>CLK Cordova Sample</name>
<description>CLK Cordova Sample的说明</description>
<license>Apache 2.0</license> <!-- javascript -->
<js-module name="NotificationService" src="www/clk.cordova.sample.NotificationService.js" >
<clobbers target="clk.cordova.sample.NotificationService" />
</js-module> <!-- android -->
<platform name="android">
<!-- config -->
<config-file target="res/xml/config.xml" parent="/*">
<feature name="NotificationService">
<param name="android-package" value="com.clk.cordova.sample.NotificationService"/>
</feature>
</config-file>
<!-- source -->
<source-file src="src/android/NotificationService.java" target-dir="src/com/clk/cordova/sample/NotificationService" />
<source-file src="src/android/mylibrary.jar" target-dir="libs" />
</platform> </plugin>
完成上列步骤后,接着动手修改clk-cordova-sample里NotificationService.java,来使用mylibrary.jar里面所提供的Class。
NotificationService.java
package com.clk.cordova.sample; import org.apache.cordova.*;
import org.json.*;
import android.widget.Toast;
import myLibrary.MyClass; public class NotificationService extends CordovaPlugin { // methods
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { // show
if(action.equals("show")) { // test
MyClass x = new MyClass();
String message = "Hi " + x.getMessage(); // execute
Toast.makeText(this.cordova.getActivity(), message, Toast.LENGTH_LONG).show(); // return
return true;
} // default
return false;
}
}
最后,执行clk-cordova-sample里的范例APP。就可以在执行画面上,看到一个Toast窗口显示从Library取得的讯息内容,这也就完成了Cordova Plugin使用Android Library的相关开发步骤。
显示回传讯息

范例下载
范例程序代码:下载地址
[Cordova] Plugin里使用Android Library的更多相关文章
- [Cordova] Plugin里使用iOS Framework
[Cordova] Plugin里使用iOS Framework 前言 开发Cordova Plugin的时候,在Native Code里使用第三方Library,除了可以加速项目的时程.也避免了重复 ...
- [Cordova] Plugin开发架构
[Cordova] Plugin开发架构 问题情景 开发Cordova Plugin的时候,侦错Native Code是一件让人困扰的事情,因为Cordova所提供的错误讯息并没有那么的完整.常常需要 ...
- [Cordova] Plugin开发入门
[Cordova] Plugin开发入门 Overview Cordova的设计概念,是在APP上透过Web控件来呈现Web页面,让Web开发人员可以操作熟悉的语言.工具来开发APP.使用Web页面来 ...
- 【转】如何使用Android Studio把自己的Android library分发到jCenter和Maven Central
转自:http://www.devtf.cn/?p=760&utm_source=tuicool 如何使用Android Studio把自己的Android library分发到jCenter ...
- vue+cordova构建跨平台应用集成并使用Cordova plugin
安装 //安装 vue-cil npm install --global vue-cli //安装cordova npm i cordova -g cordova 新建项目 //新建cordova 项 ...
- Android Library项目发布到JCenter最简单的配置方法
前沿 网上的步骤看起来实在太麻烦,gituhb上偶然间看到的一个项目,经过实际验证确实可行.github连接:https://github.com/xiaopansky/android-library ...
- 关于创建Android Library所须要知道的一切
关于创建Android Library所须要知道的一切 Android 库(Library)在结构上与 Android 应用模块同样.应用模块所能够包括的东西.在库中都同意存在,包括代码文件.资源文件 ...
- 使用Jitpack发布自己的Android Library
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/169 使用Jitpack发布自己的Android Libr ...
- Android Library的依赖方式及发布(转)
还是那句老话,好记性不然烂笔头,在此整理 Android Studio 依赖相关 以及 如何发布项目到 JCenter Android Studio 添加依赖Module 依赖module 依赖是指在 ...
随机推荐
- C语言-结构体struct-联合体union-枚举enum
结构体 在Java中,我们要表示一个复合的数据类型就会使用对象去封装.而C就有结构体. 结构体是C语言中自定义的数据类型,是一组变量的集合,有别于数组,数组仅限于同一种数据类型,而结构体可以是任何数据 ...
- tornado 学习笔记9 Tornado web 框架---模板(template)功能分析
Tornado模板系统是将模板编译成Python代码. 最基本的使用方式: t = template.Template("<html>{{ myv ...
- API调试工具推荐 - httpie
API调试工具推荐 - httpie <HelloGitHub>第07期上面看到这个python项目,好东西 文档地址 但是安装的时候报错,google之后发现是个已知的bug,直接使用p ...
- webpack + vuejs 基本配置(一)
开始之前 本文包含以下技术,文中尽量给与详细的描述,并且附上参考链接,读者可以深入学习: 1.webpack2.Vue.js3.npm4.nodejs —- 这个就不给连接了,因为上面的连接都是在你实 ...
- 小谈MVC 模式
MVC (Modal View Controler) 本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使 ...
- OpenCASCADE DataExchange DWG
OpenCASCADE DataExchange DWG eryar@163.com Abstract. DWG is a file format created in the 70’s for th ...
- T-SQL:毕业生出门需知系列(四)
第4课 过滤数据 4.1 使用 WHERE 子句:过滤 只检索所需数据需要指定搜索条件(即过滤条件). WHERE 子句在表名(FROM 子句)后给出,根据 WHERE 子句中指定的条件过滤. SEL ...
- JavaSE高级之集合类
下面的内容是对java中的集合类进行的总结,过段时间会分享java的网路编程,多线程等内容,欢迎批评指正. 1.Java中的集合是用来存放对象的,即集合是对象的集合,对象是集合的元素,java AP ...
- EntityFramework 7 Left Join Where is error(Test record)
First of all, my English is very poor, so I may not be a very good expression, very sorry! In this b ...
- ZOJ Problem Set - 1201 Inversion
题目:这道题目的意思让人猛地一读有点反应不过来,简单解释下: 给定序列A:a1,a2,a3....,an,如果i<j且ai>aj则(ai,aj)称为序列A的一个倒置. 之后引出了序列的倒置 ...