cordova调用java_Cordova开发自定义插件(详细篇含jar包调用)

本文详述了如何在Cordova环境中开发自定义插件,包括创建插件、添加Android平台、引入Java代码和Jar包,并给出插件安装与使用的步骤。遇到的问题包括Java版本、Gradle版本不兼容等,提供了相应的解决方案。
摘要由CSDN通过智能技术生成

一. 准备工作

1. 环境搭建

此处npm有点慢,需用国内镜像

本猿采用 命令行指定

npm --registry https://registry.npm.taobao.org info underscore

2. 创建一个cordova项目

cordova create hello com.example.hello helloWorld

3. 为项目添加android平台

cordova platform add android

4. 安装plugman插件

npm install –g plugman

插:准备工作做完了,开始正式写插件

二. 开发插件

1. 创建插件

plugman create –name --plugin_id --plugin_version

[--path][--variableNAME=value]

plugmanName : 插件名字

pluginID : 插件ID

version : 0.0.1

directory : 一个绝对或相对路径的目录,该目录将创建插件项目

variableNAME=VALUE: 额外的描述,如作者信息和相关描述

egg :

plugman create --name LycPlugin --plugin_ id lycPlugin --plugin_version 1.0.0

成功创建插件后的文件结构如下图:

0818b9ca8b590ca3270a3433284dd417.png

2. 在插件内添加android platform,生成.java文件

cd LycPlugin

plugman platform add –platform_name android

成功添加后目录如下图:

0818b9ca8b590ca3270a3433284dd417.png

若想添加依赖jar包,可直接放在android目录下,或者在src下新建libs目录。

添加jar包之后记得在工程中添加jar包依赖

本猿直接将xxx.jar放在android目录下,文件结构如下:

0818b9ca8b590ca3270a3433284dd417.png

3. 各个文件详解

xx.js和plugin.xml的详解可以参考这篇博文

3.1 plugin.xml

jar包的网络依赖

demo内有对plugin.xmlde详解。由于详解太多,故放在代码内特别杂乱不利查阅,有需要详解的可以下载demo,也可去这里查看详解

LycPlugin

3.2 lycPlugin.js

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

exports.coolMethod = function(arg0, success, error) {

exec(success, error, "LycPlugin", "coolMethod", [arg0]);

};

var lycFunc = function(){};

// arg1:成功回调

// arg2:失败回调

// arg3:将要调用类配置的标识

// arg4:调用的原生方法名

// arg5:参数,json格式

lycFunc.prototype.showToast=function(success, error) {

exec(success, error, "LycToast", "showToast", []);

};

lycFunc.prototype.showToastwithmsg=function(text, lenth,success, error) {

exec(success, error, "LycToast", "showToastwithmsg", [text, lenth]);

};

var showt = new lycFunc();

module.exports = showt;

3.3 LycPlugin.java

package com.lyc.toast;

import org.apache.cordova.CordovaPlugin;

import org.apache.cordova.CallbackContext;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import android.widget.Toast;

import b.b.b.simple;

/** * This class echoes a string called from JavaScript. */

public class LycPlugin extends CordovaPlugin {

@Override

public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {

if("showToast".equals(action)){

int temp = simple.add(4,5); //jar包内方法的引用(实验)

Toast.makeText(cordova.getActivity(), "show..."+"jar包方法结果"+temp, Toast.LENGTH_SHORT).show();

callbackContext.success("success");

return true;

}else if("showToastwithmsg".equals(action)){

String str = args.getString(0);

int len = args.getInt(1);

if(len == 0){

Toast.makeText(cordova.getActivity(), str, Toast.LENGTH_SHORT).show();

callbackContext.success("success" + str);

return true;

}else{

Toast.makeText(cordova.getActivity(), str, Toast.LENGTH_LONG).show();

callbackContext.success("success" + str);

return true;

}

}

callbackContext.error("error");

return false;

}

}

4. 安装插件

我的插件所在的路径是F:\LycPlugin

首先切换到最初创建的hello目录 cd hello

执行插件安装命令

cordova plugin add F:\LycPlugin

执行完之后你就发现插件已经安装上去了

如果你想卸载插件的话,执行cordova plugin remove plugin_id

egg:

cordova plugin remove lycPlugin

5. 插件的使用

lyc.toast.showToast();

lyc.toast.showshowToast("hello",0, function(msg) {

alert(msg);

}, function(msg) {

alert(msg);

});

三. 一些问题

jre使用版本过高。生成jar包时使用 javaSE -1.7(jdk1.8.0.20)

插件未能正确引入Android Stuidio ,正确import详见此篇博客

Gradle版本过低,使用2.10版本正常

出现了Gradle version 2.10 is required. Current version is 2.2.1. If usingthegradle解决办法如下详见这里

buildscript { System.properties['com.android.build.gradle.overrideVersionCheck'] = 'true' … }

一些关键问题的必要版本

Gardle 2.10

JavaSE – 1.7(jdk 1.8.0.20)

版权声明:本文为博主原创文章,未经博主允许不得转载。

多谢cool丶的帮助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值