開發屬於本身的cordova插件

1.下載plugmanjava

npm install -g plugman

2.建立插件命令android

plugman create --name <pluginName> --plugin_id <pluginID> --plugin_version <version> [--path <directory>] [--variableNAME=VALUE]

參考例子ios

plugman create --name WoodyPlugin --plugin_id woodyPlugin --plugin_version 0.0.1

3.參數介紹:
pluginName: 插件名字
pluginID: 插件id : woodyPlugin
oversion: 版本 : 0.0.1
directory:一個絕對或相對路徑的目錄,該目錄將建立插件項目
variable NAME=VALUE: 額外的描述,如做者信息和相關描述apache

4.生成插件的文件目錄npm

clipboard.png

5.根據在不一樣平臺(ios,android,winphone)開發,通常在src目錄上建立不一樣平臺的文件夾,下面以android項目舉例子,在src下建立一個android目錄和一個空Test.java類json

clipboard.png

6.plugin.xml的配置ide

打開plugin.xml你會看到以下已經生成的配置ui

<?xml version='1.0' encoding='utf-8'?>  
<plugin id="woodyPlugin" version="0.0.1" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">  
    <name>WoodyPlugin</name>  
    <js-module name="WoodyPlugin" src="www/WoodyPlugin.js">  
        <clobbers target="cordova.plugins.WoodyPlugin" />  
    </js-module>  
</plugin>

參數介紹:this

id: 插件的id
version: 插件的版本
name: 插件的名字
clobbers: 這個是js代碼調用原生代碼的引用spa

7.WoodyPlugin.js的配置

打開WoodyPlugin.xml你會看到以下已經生成的配置

var exec = require('cordova/exec');  
  
exports.woodyMethod = function(arg0, success, error) {  
    exec(success, error, "WoodyPlugin", "woodyMethod", [arg0]);  
};

8.完整plugin.xml和WoodyPlugin.js

plugin.xml

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

WoodyPlugin.js

var exec = require('cordova/exec');  
  
exports.woodyMethod = function(arg0, success, error) {  
    exec(success, error, "WoodyPlugin", "woodyMethod", [arg0]);  
};

看到plugin.xml在以前的基礎上新加了<platform>節點.其中feature對應着WoodyPlugin.js中exec(success, error, "WoodyPlugin", "woodyMethod", [arg0]);第3個參數,這個兩處的參數必須一致,否則插件調用不起來,exports.woodyMethod和第4個參數也必須一致,這個是調用原生代碼中的方法.

9.插件的安裝

個人插件所在的路徑是D:WoodyPlugin
首先切換到本身建立android工程的目錄 cd YourProjectName
執行插件安裝命令 cordova plugin add D:WoodyPlugin
執行完以後你就發現插件已經安裝上去了
若是你想卸載插件的話,執行cordova plugin remove 你的plugin_id

cordova plugin remove WoodyPlugin

10.完善Test.java插件類

import org.apache.cordova.CallbackContext;  
import org.apache.cordova.CordovaPlugin;  
import org.json.JSONArray;  
import org.json.JSONException;  
  
public class Test extends CordovaPlugin{  
  private CallbackContext mCallbackContext;  
  @Override  
  public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {  
    this.mCallbackContext = callbackContext;  
    if("woodyMethod".equals(action)){  
      String msg = args.getString(0);    
      callbackContext.success("success"+msg);  
      return true;  
    }  
    mCallbackContext.error("error");  
    return false;  
  }  
}

if(「woodyMethod」.equals(action))中的woodyMethod對應WoodyPlugin.js中的exports.woodyMethod和exec方法的第4個參數

11.在js中如何調用

找到cordova_plugins.js文件,在該文件中找到你建立插件clobbers的屬性,以個人插件爲例,clobbers是woody.plugins.WoodyPlugin。

在js調用時就能夠按照以下命令調用

woody.plugins.WoodyPlugin.woodyMethod('Hello woody!',function(msg){  
  alert(msg);  
},function(msg){  
  alet(msg);  
})
相關文章
相關標籤/搜索