Androidプラットフォームの下で、Cordoverプラグインをカスタマイズします.
3268 ワード
Cordova公式のプラグインを使う以外に、自分でプラグインを書いて、業務の需要を満たします.
Androidプラットフォームでは、各プラグインは2つの部分から構成されています.プラグインのJavaScriptファイル プラグインのJAVA類 プラグインを作成するJavaScript
プラグインがあるディレクトリ
Cordova自身のプラグインがすべて定義されていることが見えます.そのパッケージ名で名付けられたフォルダの下のwwwディレクトリの中で、私達もこの約束に従ってJSを作成し、パッケージ名を
JSの内容は以下の通りです
以下はプラグインの設定です.Cordovaにプラグインが書いてあることを教えてください.
Cordovaはconfig.xmlファイルを解析します.各フィーチャーは一つのpluginです.
key
desc
フィーチャー.name
pluginの名前
android-package
プラグインのjavaクラスを指定するには、パッケージ名を含む完全な名前が必要です.
onload
trueのために、webviewが読み込まれているという意味です.このプラグインをロードしますか?デフォルトはfalseです.このプラグインを使うと、ロードします.
ここでプラグインが完了しました.JSでプラグインを呼び出す方法ができます.
Androidプラットフォームでは、各プラグインは2つの部分から構成されています.
プラグインがあるディレクトリ
assets/www/plugins/
は、Cordovaのプラグインを追加すると、次の図が見えます.Cordova自身のプラグインがすべて定義されていることが見えます.そのパッケージ名で名付けられたフォルダの下のwwwディレクトリの中で、私達もこの約束に従ってJSを作成し、パッケージ名を
com.test.plugin
と指定します.JSの内容は以下の通りです
// "com.test.plugin.PluginTest" ID
cordova.define("com.test.plugin.PluginTest", function (require, exports, module) {
var exec = require('cordova/exec');
function PluginTest() {
}
PluginTest.prototype = {
test1: function (params, successCallback, errorCallback) {
// , config.xml feature.name
exec(successCallback, errorCallback, "PluginTest", "test1", [params]);
},
test2: function (params, successCallback, errorCallback) {
exec(successCallback, errorCallback, "PluginTest", "test2", [params]);
}
}
module.exports = new PluginTest();
});
プラグインを作成するJAVAクラスCordovaPlugin
クラスを継承し、execute
方法を書き換える.クラス内の方法名はjs中の方法名と一致しており、検索が容易であることを約束する.package com.test.plugin;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;
import android.widget.Toast;
public class PluginTest extends CordovaPlugin {
/**
* execute
*/
@Override
public boolean execute(String action, JSONArray args,
CallbackContext callbackContext) throws JSONException {
if("test1".equals(action)) {
this.test1(args, callbackContext);
}else if("test2".equals(action)) {
this.test2(args, callbackContext);
}else{
return false;
}
return true;
}
private void test1(JSONArray args, final CallbackContext callbackContext)
throws JSONException {
// worker
cordova.getThreadPool().execute(new Runnable() {
@Override
public void run() {
System.out.println("Execute test1 method");
callbackContext.success(" ");
}
});
}
private void test2(JSONArray args, final CallbackContext callbackContext)
throws JSONException {
// UI
cordova.getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(cordova.getActivity(), "Execute test2 method", Toast.LENGTH_SHORT).show();
callbackContext.error(" ");
}
});
}
}
プラグインの設定以下はプラグインの設定です.Cordovaにプラグインが書いてあることを教えてください.
res/xml/config.xml
ファイルを開き、フィーチャーを追加します.Cordovaはconfig.xmlファイルを解析します.各フィーチャーは一つのpluginです.
key
desc
フィーチャー.name
pluginの名前
android-package
プラグインのjavaクラスを指定するには、パッケージ名を含む完全な名前が必要です.
onload
trueのために、webviewが読み込まれているという意味です.このプラグインをロードしますか?デフォルトはfalseです.このプラグインを使うと、ロードします.
ここでプラグインが完了しました.JSでプラグインを呼び出す方法ができます.