如何在cordova应用程序中添加自定义cordova插件

ana*_*and 2 cordova cordova-plugins visual-studio-cordova

我使用了plugman 命令在cordova 中创建了一个插件

它创建了所有必需的文件。然后我在插件中添加了android平台。

然后我尝试将它添加到cordova应用程序中。我成功添加了它,但是当我尝试构建应用程序时,它出现以下错误

在此处输入图片说明

我究竟做错了什么。如何在cordova 应用程序中添加我的自定义插件。

以下是 .java 文件的代码。

 package cordova-plugin-test-cordova-plugin;

 import org.apache.cordova.CordovaPlugin;
 import org.apache.cordova.CallbackContext;

  import org.json.JSONArray;
  import org.json.JSONException;
  import org.json.JSONObject;
      /**
      * This class echoes a string called from JavaScript.
     */
   public class TestCordovaPlugin extends CordovaPlugin {

   @Override
   public boolean execute(String action, JSONArray args, CallbackContext     callbackContext) throws JSONException {
    if (action.equals("coolMethod")) {
        String message = args.getString(0);
        this.coolMethod(message, callbackContext);
        return true;
    }
    return false;
}

private void coolMethod(String message, CallbackContext callbackContext) {
    if (message != null && message.length() > 0) {
        callbackContext.success(message);
    } else {
        callbackContext.error("Expected one non-empty string argument.");
    }
}
}
Run Code Online (Sandbox Code Playgroud)

这是我的 plugin.xml 文件:

        <?xml version='1.0' encoding='utf-8'?>
        <plugin id="cordova-plugin-test-cordova-plugin" version="0.0.1"    xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
         <name>TestCordovaPlugin</name><js-module name="TestCordovaPlugin" src="www/TestCordovaPlugin.js">
<clobbers target="cordova.plugins.TestCordovaPlugin" /></js-module><platform name="android">
  <config-file parent="/*" target="res/xml/config.xml"><feature name="TestCordovaPlugin">
    <param name="android-package" value="cordova-plugin-test-cordova-plugin.TestCordovaPlugin" />
  </feature></config-file><config-file parent="/*" target="AndroidManifest.xml"></config-file>
  <source-file src="src/android/TestCordovaPlugin.java" target-dir="src/cordova-plugin-test-cordova-plugin/TestCordovaPlugin" />
</platform>
 </plugin>
Run Code Online (Sandbox Code Playgroud)

San*_*nde 5

我认为根据您的参考资料,您的 Java 代码中遗漏了。要创建自定义 Cordova 插件,请查看此处

请在 java 文件中检查您的包名称约定以获取更多信息,请在此处查看

这里是在离子应用程序中创建插件和安装的步骤。

有关来源和示例,请在此处检查。

命令:

  1. 插件创建 --name 测试 --plugin_id cordova.plugin.test --plugin_version 0.0.1
  2. 插件平台添加--platform_name android
  3. 插件平台添加--platform_name ios
  4. ionic start IonicCordovaPluginTestApp 空白
  5. (In App Dir) ionic plugin 添加【你本地的测试插件路径】

    示例:离子插件添加 /Users/Workspace/Test/CordovaPluginSampleTest/Test

  6. 离子平台添加android或ios

按以下方式更新 plugin.xml 文件

      <?xml version='1.0' encoding='utf-8'?>
      <plugin id="cordova.plugin.test.cordova.plugin" version="0.0.1"    xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
         <name>TestCordovaPlugin</name>
         <js-module name="TestCordovaPlugin" src="www/TestCordovaPlugin.js">
            <clobbers target="cordova.plugins.TestCordovaPlugin" />
         </js-module>
         <platform name="android">
            <config-file parent="/*" target="res/xml/config.xml">
               <feature name="TestCordovaPlugin">
                  <param name="android-package" value="cordova.plugin.test.cordova.plugin.TestCordovaPlugin" />
               </feature>
            </config-file>
            <config-file parent="/*" target="AndroidManifest.xml"></config-file>
            <source-file src="src/android/TestCordovaPlugin.java" target-dir="src/cordova/plugin/test/cordova/plugin/TestCordovaPlugin" />
         </platform>
      </plugin>
Run Code Online (Sandbox Code Playgroud)

希望这对你有帮助!!!