我正在为Android应用程序开发Cordova插件,我阅读了Oracle网站上的所有文档,但我不了解如何创建自定义插件并使用它。
1)我创建了一个Cordova项目,我插入了一个自定义库(jar),这个库允许我使用一些自定义函数。
My cordova project, that contains a custom library 2)现在我必须在cordova中创建一个插件" call"我的库里面有一个函数,为了做到这一点,我在插件中创建了一个新文件夹" cordova-plugin-ldm" 在两个新文件夹" src / Android /"和" www"。
在src / android中我创建了我的java文件:
public class MYCLASS extends CordovaPlugin {
protected void pluginInitialize() {
}
public boolean execute(String action, JSONArray args, CallbackContext callbackContext)
throws JSONException {
if (action.equals("alert")) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
TestConnection ts = new TestConnection();
JSONObject result = ts.TestNow();
callbackContext.success(myString);
//callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, 0));
return true;
}
return false;
}
}
在www中我创建了我的js:
module.exports = {
greet: function (name, successCallback, errorCallback) {
cordova.exec(successCallback, errorCallback, "Hello", "greet", [name]);
}
};
在文件" plugin.xml":
中<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
id="com.acme.plugin.alert"
version="0.0.1">
<name>LDM Plugin</name>
<description>A Cordova plugin for LDM</description>
<engines>
<engine name="cordova" version=">=3.6.0" />
</engines>
<js-module src="www/MYJAVASCRIPT.js" name="MYJAVASCRIPT">
<clobbers target="MYJAVASCRIPT" />
</js-module>
<!-- Android -->
<platform name="android">
<config-file target="res/xml/config.xml" parent="/*">
<feature name="MYNAMEAPP">
<param name="android-package" value="package.ldm" />
</feature>
</config-file>
<source-file src="src/android/MYCLASS.java" target-dir="src/PACKAGE/ldm/plugin/ldm" />
</platform>
现在(我不知道它是否正确,是否有效)但是,我如何能够(自动或手动)添加到我的项目中?
答案 0 :(得分:1)
在这里,您可以找到一个非常简单的插件,其中包含参数和回调https://github.com/amitbindal09/cordova-plugin-alert
答案 1 :(得分:0)
据我所知,你必须按照规范创建一个插件文件夹,并确保插件在plugins文件夹下的fetch.json文件中引用。然后删除并重新添加平台应该在相应的文件夹中处理插件安装。您可以引用任何现有插件来复制相同的文件夹结构。
有关自定义插件创建的详细信息,请参见cordova official documentation。希望有所帮助
答案 2 :(得分:0)
如果插件位于插件文件夹中,则在添加平台时,插件会自动包含。