cordova android项目自定义插件及使用(一)

--新建cordova项目

  cordova create Myproj com.myproj.test MyTestProj

--添加平台及设备

  cd Myproj

  cordova platform add android

  cordova platform add ios

  cordova plugin add org.apache.cordova.device

--然后这个时候打开项目目录是这个样子的

  

  config:应用的配置信息

  platforms:应用支持的平台目录

  plugins:安装的插件目录

  www:web工程目录

  我们开发的插件最终要添加到plugins目录当中

  添加自定义插件,创建ExtendInfo文件夹,结构如下:

  ExtendInfo

  |—src

  |      |—android

  |                 |—ExtendInfo.java

  |      |—ios

  |—www

  |          |—ExtendInfo.js

  |—plugin.xml

    src:对应不同平台

    www:放我们的javascript

    plugin.xml:插件配置文件

  这里是plugin.xml

<?xml version="1.0" encoding="utf-8"?>
<plugin id="com.myproj.test" version="0.0.1"
    xmlns="http://apache.org/cordova/ns/plugins/1.0"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <name>ExtendInfo</name>
    <description>Description</description>
    <js-module name="ExtraInfo" src="www/ExtendInfo.js">
        <clobbers target="cordova.plugins.ExtendInfo"/>
    </js-module>
    <platform name="android">
        <config-file parent="/*" target="res/xml/config.xml">
            <feature name="ExtendInfo">
                <param name="android-package" value="com.myproj.test.ExtraInfo"/>
            </feature>
        </config-file>
        <source-file src="src/android/ExtendInfo.java" target-dir="src/com/myproj/test"/>
    </platform>
</plugin>

  其中:

    id:插件的标识,即发布到plugins.cordova.io的id

    name:插件名称

    description:描述

    js-module:对应我们的javascript文件,src属性指向:www/ExtendInfo.js

    platform:支持平台。这里仅有android

<config-file parent="/*" target="res/xml/config.xml">
            <feature name="ExtendInfo">
                <param name="android-package" value="com.myproj.test.ExtraInfo"/>
            </feature>
        </config-file>
        <source-file src="src/android/ExtendInfo.java" target-dir="src/com/myproj/test"/>

  这是插件的配置信息,最后会添加到android项目的 res/xml/config.xml文件中,并且将我们的src/android/下的ExtendInfo.java复制到android

  项目的package包当中去

  ExtendInfo.js内容如下:

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

exports.getExtra = function(success, error) {
    exec(success, error, "ExtendInfo", "getExtra", []);
};

  ExtendInfo.java内容如下:

public class ExtendInfo extends CordovaPlugin {

    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext)
    throws JSONException {
        Activity activity = this.cordova.getActivity();
        if (action.equals("getExtra")) {
            Intent i = activity.getIntent();
            if (i.hasExtra(Intent.EXTRA_TEXT)) {
                callbackContext.success(i.getStringExtra(Intent.EXTRA_TEXT));
            } else {
                callbackContext.error("");
            }
            return true;
        }
        return false;
    }
}

  到这里,我们的插件就编写Ok了。通过如下命令添加插件:

    cordova plugin add ExtendInfo

  这样子我们的插件就添加到项目啦

--使用eclipse打开项目,我们会发现assets下的目录不显示

  

  我们点击打开这个txt文件,按步骤操作就可以显示啦,并且res/config.xml也可以显示了。

  此时config.xml当中已经添加了我们自定义的插件信息,如下:

  

  当中的content src=“index.html”指向的就是assets/www/index.html

  点击就可以运行了,具体自定义插件应用看下一篇。

时间: 2024-11-08 08:46:40

cordova android项目自定义插件及使用(一)的相关文章

cordova android项目自定义插件及使用(二)

接上一篇 这次完成的是:从index当中的js事件,访问android原生的activity,用android.widget.Toast显示一句hello world ——这次首先打开ExtendInfo.java,修改 private static final String TOAST = "toast"; @Override public boolean execute(String action, JSONArray args, CallbackContext callbackC

android项目自定义组合控件添加属性

首先要在values文件下新建立一个文件arrts.xml,这个文件就是用来说明键名称是做什么的,和值的类型 <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="SeetingView"> <attr name="up" format="string" /> &

android项目自定义组合控件

自定义控件首先要有一个布局文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="60dp" a

Cordova Android源码分析系列一(项目总览和CordovaActivity分析)

PhoneGap/Cordova是一个专业的移动应用开发框架,是一个全面的WEB APP开发的框架,提供了以WEB形式来访问终端设备的API的功能.这对于采用WEB APP进行开发者来说是个福音,这可以避免了原生开发的某些功能.Cordova 只是个原生外壳,app的内核是一个完整的webapp,需要调用的原生功能将以原生插件的形式实现,以暴露js接口的方式调用. Cordova Android项目是Cordova Android原生部分的Java代码实现,提供了Android原生代码和上层We

基于ionic2的跨平台项目(六)cordova多项目热修复

上篇文章详细介绍了cordova+Android项目的热修复过程,本篇探讨下,一个cordova项目如何集合多个cordova项目,它们是如何协作的,以及如何对他们分别进行热修复. 多cordova项目集合 我们探讨这样一种情况,要做一个综合管理的ionic项目.需要多个团队共同开发多个项目然后集合到这一个项目里,最终实现的效果是在ionic项目中或者是在原生项目中,能进入另外若干个完整的ionic项目. 1.首先创建一个ionic2项目,然后使用$ ionic platform add ios

Android Cordova 插件开发之编写自定义插件

前言 本文适合Android+web的复合型人才,因为cordova本身就是混合开发,所以在Android开发的基础上,还要懂web相关技术(HTML+CSS+JS),但是也有例外,比如我,只需负责Android方面,web方面的交由其他web组人员开发.虽然,web略懂一点,但我主要还是搞Android开发的. 编写自定义插件类 本节的内容是,自定义一个dialog插件,供web调用,显示系统弹窗. 新建一个包名,我这里使用org.apache.cordova.dialog,然后创建个类Cus

JQuery Mobile+cordova构建一个Android项目

1.安装Android开发环境 Android开发环境的安装,现在主要是由于不能访问谷歌站点,在windows下在host文件中添加一个对应的74.125.195.190 dl-ssl.google.com,dl-ssl.google.com对应的ip可能改变.用的时候搜索最新的IP地址就行了. 然后用eclipse或者myeclipse更新站点信息:https://dl-ssl.google.com/android/eclipse. 具体教程网上很多,我比较喜欢的是:http://jingya

cordova 自定义插件

cordova /phonegap 自定义插件 在使用cordova 的过程中,虽然官方提供的插件以及其他人开源的插件较多.但有时为了实现某种需求,还是需要自己编写插件. 以前总是会手动的配置cordova插件,具体可以参考phonegap手动配置插件 今天主要是介绍官方提供的plugman来创建插件 pluman的使用 首先,安装plumam npm install -g plugman 安装完之后,就可以创建plugin plugman create --name <pluginName>

Android项目中自定义顶部标题栏

Android项目中自定义顶部标题栏 下面给大家详细介绍android中自定义顶部标题栏的思路及实现方式 先来图:     思路及实现步骤 1.定义标题栏布局 2.自定义TitleActivity控制标题栏按钮监听 3.在TitleActivity中实现标题栏以下内容切换 首先定义标题栏 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http:/