cordova 插件 修改版

本文详细介绍如何使用Cordova创建项目及插件,包括创建步骤、配置文件详解、插件调用方法等关键技术要点。

1.创建项目

cordova create LocalCordova com.hjk.cordova CordovaApp

2.创建插件

plugman create --name HjkPlugin --plugin_id HjkPlugin --plugin_version 1.0.0

3.HjkPlugin目录结构

src--android ---HjkPlugin.java   java代码

www-HjkPlugin.js  js调用配置

plugin.xml    配置页面

package.json    通过npm init 获取

HjkPlugin.java

package org.apache.cordova.bluetooth;

import android.widget.Toast;

import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaArgs;
import org.apache.cordova.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;

public class HjkPlugin extends CordovaPlugin {

    @Override
    public boolean execute(String action, CordovaArgs args, CallbackContext callbackContext) throws JSONException {
		//localTost 为对外调用的方法名
        if("localToast".equals(action)){
            Toast.makeText(cordova.getActivity(),"cordova plugin test :" + args.getString(0),Toast.LENGTH_LONG).show();
			//callbackContext用来调用回调函数,success为调用成功的回调
            callbackContext.success("toast success");
			return true;
        }
		//error为返回错误时的回调
        callbackContext.error("toast error");
        return false;
    }
}

HjkPlugin.js

var exec = require('cordova/exec');
// arg1:成功回调
// arg2:失败回调
// arg3:对应xml配置文件中的feature name
// arg4:plugin 插件中比对的action
// arg5:参数,json格式
// 属性中的localToast => 外部调用的对象
// exec中的localToast => plugin 插件中比对的action

var hjkFunc = {
    
	localToast : function (success, error,arg0) {
		exec(success, error, "HjkToast", "localToast", [arg0]);
	}
}

module.exports = hjkFunc;

plugin.xml

<?xml version='1.0' encoding='utf-8'?>
<plugin id="HjkPlugin" version="1.0.0" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
    <!--指js文件名,而这个文件会自动以`<script`>标签的形式添加到Cordova项目的起始页。
    通过在*js-module*中列出插件,可以减少开发者的工作。*clobbers*元素说明了
    *module.exports*自动添加到*window*对象,让插件方法能够在窗口级别使用。-->
	<name>HjkPlugin</name>
	
	<!--文件中js-module元素定义了js的名字,它将在应用开始时自动加载。
    它定义了向Cordova公开的js接口。clobbers元素指明了js对象赋值给加载的js对象。
    本例中,HjkPlugin插件通过一个cordova.plugins.HjkPlugin对象向Cordova应用公开。-->
    <js-module name="HjkPlugin" src="www/HjkPlugin.js">
        <clobbers target="cordova.plugins.HjkPlugin" />
    </js-module>
	
	<!--它定义了某个移动平台专用的设置,包括了相关native代码的设置。可以有一个或多个平台。-->
    <!--android的配置-->
    <platform name="android">

        <!--config-file元素定义了在插件安装过程中的改动。在例子中,一个叫HjkToast
        的特性添加到Android项目的config.xml文件中,指向Java类org.apache.cordova.bluetooth.HjkPlugin-->
        <config-file parent="/*" target="res/xml/config.xml">
            <feature name="HjkToast">
                <param name="android-package" value="org.apache.cordova.bluetooth.HjkPlugin" />
            </feature>
        </config-file>

        <!--android权限,本例没有用到下权限,仅示例-->
        <config-file parent="/*" target="AndroidManifest.xml">
            <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        </config-file>

        <!--source-file元素指出了一个或多个Android native源代码文件,当插件安装时由CLI安装。
        下面的例子指示plugman或CLI复制HjkPlugin.java文件到Cordova项目
         Android平台文件夹的*src/org/apache/cordova/bluetooth/HjkPlugin文件夹中。jar包放到libs下-->
        <source-file src="src/android/HjkPlugin.java" target-dir="src/org/apache/cordova/bluetooth" />
        <source-file src="src/android/xxx.jar" target-dir="libs" />

    </platform>
	
	
	
	
</plugin>

package.json

{
  "name": "hjkplugin",
  "version": "1.0.0",
  "description": "test for plugin",
  "cordova": {
    "id": "HjkPlugin",
    "platforms": [
      "android"
    ]
  },
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "hjk",
  "license": "ISC"
}

4.项目添加插件

cordova plugin add E:\cordova_workspace\HjkPlugin

5.调用插件

onDeviceReady: function() {
        this.receivedEvent('deviceready');
		cordova.plugins.HjkPlugin.localToast(function (res) {
			alert(res)
		}, function (msg) {
			alert(msg)
		},"just hjk toast")
    },

6.运行

cordova run  android

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值