如何创建和添加cordova插件到项目

时间:2016-05-09 14:09:02

标签: java android cordova

我正在为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>

现在(我不知道它是否正确,是否有效)但是,我如何能够(自动或手动)添加到我的项目中?

3 个答案:

答案 0 :(得分:1)

在这里,您可以找到一个非常简单的插件,其中包含参数和回调https://github.com/amitbindal09/cordova-plugin-alert

答案 1 :(得分:0)

据我所知,你必须按照规范创建一个插件文件夹,并确保插件在plugins文件夹下的fetch.json文件中引用。然后删除并重新添加平台应该在相应的文件夹中处理插件安装。您可以引用任何现有插件来复制相同的文件夹结构。

有关自定义插件创建的详细信息,请参见cordova official documentation。希望有所帮助

答案 2 :(得分:0)

如果插件位于插件文件夹中,则在添加平台时,插件会自动包含。