cordova android項目自定義插件及使用(一)

 
--新建cordova項目
  cordova create Myproj com.myproj.toast 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>

  其中:javascript

    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內容以下:html

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
 
   點擊就能夠運行了,具體自定義插件應用看下一篇。
相關文章
相關標籤/搜索