2016-12-26 59 views
1

我使用plugman命令在cordova中创建插件如何在cordova app中添加自定义cordova插件

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

然后我试着将它添加到cordova应用程序中。我加了它成功,但是当我试图构建应用程序这是给下面的错误

enter image description here

我在做什么错。如何在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."); 
    } 
} 
} 

这里是我的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> 
+0

请检查这里的示例https://github.com/santoshshinde2012/CordovaPluginSampleTest –

+0

请检查更新的答案 –

回答

4

我觉得你的代码中缺少你的参考。要创建自定义科尔多瓦插件,请看here

请检查您的软件包名称约定在java文件更多请检查here

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

对于来源和样品检查here

命令:

  1. plugman创建--name测试--plugin_id cordova.plugin.test --plugin_version 0.0.1
  2. plugman平台添加--platform_name安卓
  3. plugman平台添加--platform_name IOS
  4. 离子开始IonicCordovaPluginTestApp空白
  5. (在应用DIR)离子插件添加[本地测试PL乌金路径]

    例如: 离子插件添加/用户/工作区/测试/ CordovaPluginSampleTest /测试

  6. 离子平台添加机器人或IOS

更新插件。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> 

希望这会帮助你!

+0

我按照相同的步骤创建插件。 – anand

+0

好吧那么你可以创建目录吗? –

+0

请更改您的包名称包cordova.plugin.test.cordova.plugin; –

2

从错误消息的第一行,我觉得你在Java源代码中有一个语法错误。您在TestCordovaPlugin.java文件的第一行中错过了一个分号。
作为一个简单的猜测,我想你会在导入语句后错过分号。
解决方案是,您可以先直接修改Cordova项目中的java source,然后将修改同步到独立插件。

+0

我已经添加了java文件的代码。请看看并更新我正好缺少的东西 – anand

0

你可以做的一两件事。你可以用plugman,但不同的命令即

plugman create --name AmILate --plugin_id cordovapluginamilate --plugin_version 0.0.1 

再次创建这个插件,然后再遵循相同的步骤。

我已经正确使用这个和它的作品 但是当我做出cordovapluginamilate名为myMethod的其他功能与JavaScript和Java类我得到一个错误custom plugin error

我我分享我的代码的插件在github https://github.com/vishuhanda001/cordovaaddcustomplugin

我已评论coolMethod,而不是试图在JavaScript和Java文件中使用myMethod,但获得上述错误时,虽然如果我取消注释coolMethod我的coolmethod函数插件只能工作。不知道最新情况发生 请帮助 ?

相关问题