版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010106153/article/details/53418528
Cordova plugin
工程目录

src: 各个平台的源码文件,包含 Android ios blackberry 等;
www: JavaScript调用native代码的接口文件;
plugin.xml: 插件的配置文件

编写Android代码
首先定义一个类继承自CordovaPlugin:
public class Updater extends CordovaPlugin {
public Updater(){
}
}
1
2
3
4
在该类中添加一个方法execute:
public class Updater extends CordovaPlugin {
public Updater(){

}

public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException {
if (action.equals("update")) {
new UpdaterTask(callbackContext).execute(args.getString(0));
}else{
return false;
}
return true;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
action:在JavaScript中调用时指定的action名称;
args:在JavaScript中调用时传入的参数;
callbackContext:向JavaScript返回结果的上下文对象,正确返回时callbackContext.success(data),错误返回时 callbackContext.error(err)

注意:cordova plugin中的上下文与Android native中的上下文有所区别,例如在cordova中启动一个Activity的写法是:cordova.getActivity().startActivity(Intent intent),且cordova plugin中的Activity需要继承自CordovaActivity.

编写plugin.xml文件
首先看一个例子:

<?xml version='1.0' encoding='utf-8'?>
<plugin id="expense-plugin-updater" version="0.0.1" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<name>ExpenseUpdater</name>
<js-module name="ExpenseUpdater" src="www/expense-plugin-updater.js"><clobbers target="expenseupdater"/></js-module>
<platform name="android">
<config-file parent="/*" target="res/xml/config.xml">
<feature name="ExpenseUpdater"><param name="android-package" value="expense.plugin.updater.Updater"/></feature>
</config-file>
<config-file parent="/*" target="AndroidManifest.xml">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
</config-file>
<source-file src="src/android/Updater.java" target-dir="src/expense/plugin/updater"/>
<source-file src="src/android/UpdaterTask.java" target-dir="src/expense/plugin/updater"/>
<source-file src="src/android/DecompressFast.java" target-dir="src/expense/plugin/updater"/>
</platform>
</plugin>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
js-module: name:接口文件的名字 src:接口文件的路径 clobbers.target:在宿主工程中该plugin的对象名称;
feature:每一个调用入口都需要在这里注册,即:extends CordovaPlugin的类
source-file:源码文件的map关系
plugin.xml详细的教程见:https://cordova.apache.org/docs/en/latest/plugin_ref/spec.html
编写接口文件
例子:

var exec = require('cordova/exec');

exports.update = function(url, success, error) {
exec(success, error, "ExpenseUpdater", "update", [url]);
};
1
2
3
4
5
success: 正确回调
error:错误回调
ExpenseUpdater:需要调用的feature的名称
update:需要调用的action的名称
[url]:传入的参数数组
在Ionic2中如何使用
首先将该plugin安装到ionic工程中:
cordova plugin add [path-to-your-plugin]
1
编写一个调用的interface[updater.d.ts]
export declare class ExpenseUpdater {
update(url: string): Promise<any>;
}
1
2
3
实现interface[updater.js]
"use strict";
var ExpenseUpdater = (function(){
function ExpenseUpdater(){};

ExpenseUpdater.prototype.update=function(url){
return new Promise(function(resolve,reject){
expenseupdater.update(url,function(msg){
resolve(msg);
},function(err){
reject("fuck");
});
});
};
return ExpenseUpdater;
}());

exports.ExpenseUpdater = ExpenseUpdater;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
注意:其中expenseupdater对应pluign.xml文件中的js-module标签中的clobbers.target
---------------------
作者:LehmanHe
来源:CSDN
原文:https://blog.csdn.net/u010106153/article/details/53418528
版权声明:本文为博主原创文章,转载请附上博文链接!

Cordova plugin的更多相关文章

  1. [Cordova] Plugin里使用iOS Framework

    [Cordova] Plugin里使用iOS Framework 前言 开发Cordova Plugin的时候,在Native Code里使用第三方Library,除了可以加速项目的时程.也避免了重复 ...

  2. [Cordova] Plugin开发架构

    [Cordova] Plugin开发架构 问题情景 开发Cordova Plugin的时候,侦错Native Code是一件让人困扰的事情,因为Cordova所提供的错误讯息并没有那么的完整.常常需要 ...

  3. [Cordova] Plugin里使用Android Library

    [Cordova] Plugin里使用Android Library 前言 开发Cordova Plugin的时候,在Native Code里使用第三方Library,除了可以加速项目的时程.也避免了 ...

  4. [Cordova] Plugin开发入门

    [Cordova] Plugin开发入门 Overview Cordova的设计概念,是在APP上透过Web控件来呈现Web页面,让Web开发人员可以操作熟悉的语言.工具来开发APP.使用Web页面来 ...

  5. cordova plugin数据传递概要

    cordova plugin数据传递概要: 1.调用pluginManager向所有插件发送消息: PluginManager.postMessage(String id, Object data); ...

  6. ionic cordova plugin simple demo

    要用cordova plugin 的话还是需要设置一下的 1. 下载 ng-cordova.js download the zip file here 2. 在index.html 中引用 (cord ...

  7. 在meteor中如何使用ionic组件tabs,及如何添加使用cordova plugin inappbrower

    更新框架: meteor update meteor框架的优点不言而喻,它大大减轻了App前后端开发的负担,今年5月又获得B轮2000万融资,代表了市场对它一个免费.开源开发框架的肯定.cordova ...

  8. cordova plugin汇总大全

    1.获取当前应用的版本号 cordova plugin add cordova-plugin-app-version 2.获取网络连接信息 cordova plugin add cordova-plu ...

  9. vue+cordova构建跨平台应用集成并使用Cordova plugin

    安装 //安装 vue-cil npm install --global vue-cli //安装cordova npm i cordova -g cordova 新建项目 //新建cordova 项 ...

随机推荐

  1. 打开ubantu报错(invalid environment block. Press any key to continue)

    今天向往常一样打开ubantu ,却无法正常打开,如下图 意思是无效的环境模块,随意按键继续,按任意键后如下图 折腾了许久问题也没有得到解决,后来在某篇博客中找到了答案 https://blog.cs ...

  2. Python爬虫入门教程 48-100 使用mitmdump抓取手机惠农APP-手机APP爬虫部分

    1. 爬取前的分析 mitmdump是mitmproxy的命令行接口,比Fiddler.Charles等工具方便的地方是它可以对接Python脚本. 有了它我们可以不用手动截获和分析HTTP请求和响应 ...

  3. 知识小罐头08(tomcat8启动源码分析 上)

    前面好几篇都说的是一个请求是怎么到servlet中的service方法的,这一篇我们来看看Tomcat8是怎么启动并且初始化其中的组件的? 相信看了前面几篇的小伙伴应该对Tomcat中的各个组件不陌生 ...

  4. 微信公众号开发C#系列-10、长链接转短链接

    1.概述 短网址的好处众多,便于记忆,占用字符少等,现在市面上出现了众多的将长网址转变为短网址的方法,但是由于他们都是小的公司在幕后运营,所以很不靠谱,面对随时关闭服务的可能,这样也导致我们将转换好了 ...

  5. vue项目首屏加载优化实战

    问题 单页面应用的一个问题就是首页加载东西过多,加载时间过长.特别在移动端,单页面应用的首屏加载优化更是绕不开的话题.下面我会写出我在项目中做的一些优化,希望大家能够相互讨论,共同进步. 我的项目vu ...

  6. 装箱问题的CPLEX求解

    装箱问题(Bin Packing Problem) 装箱问题即搬家公司问题.一个搬家公司有无限多的箱子,每个箱子的承重上限为W,当搬家公司进入一个房间时,所有物品都必须被装入箱子,每个物品的重量为wi ...

  7. 基本 SQL 之增删改查(一)

    上篇文章,我们介绍了数据的基本 DDL 语句,你应当具备基本的创建数据库.数据表的 SQL 语句,以及表字段的基本数据类型的熟知. 那么本篇就来总结总结大家日常最频繁接触到的 DDM 语句,也就是基本 ...

  8. Centos7+LVS-DR+keepalived实验(包含sorry-server、日志、及HTTP-GET的健康检测)

    目录检索 一.简介 1.lvs-dr原理请参考原理篇 2.keepalived原理请参考原理篇 3.基于lvs-dr+keepalived故障切换架构图如下: 二.部署 1.环境 2.准备RS的web ...

  9. 树莓派播放视频的播放器omxplayer

    omxplyer为树莓派量身定做的一款GPU硬件加速的播放器,很好的解决了树莓派cpu计算力不足的缺点.(播放时cpu一定都不烫手) 1.安装方法: CTRL + ALT + T 调出终端命令行输入 ...

  10. 一次快速改寫 SQL Server 高效查詢的範例

    最近線上系統突然出現匯出資料超過 10 筆時,查詢逾時的狀況,在仔細查找之後. 發現了問題原因,透過應用端與數據端兩邊同時調整,將查詢的效率提昇了約數百倍以上 首先,原本應用端的商務邏輯為每一分頁筆數 ...