[英]How to add custom cordova plugin in cordova app
我使用了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.");
}
}
}
这是我的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>
我认为从您的参考中您缺少Java代码。 要创建自定义的Cordova插件,请在此处查看 。
请在Java文件中检查您的软件包名称约定,以了解更多信息,请在此处检查。
这里是创建插件并在ionic应用程序中安装的步骤。
有关来源和示例,请在此处检查。
命令:
(在App Dir中)ionic插件添加[您的本地测试插件路径]
例如:ionic插件添加/ Users / Workspace / Test / CordovaPluginSampleTest / Test
离子平台添加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>
希望这对您有帮助!
从错误消息的第一行开始,我认为您的Java源代码中存在语法错误。 您在TestCordovaPlugin.java文件的第一行中错过了分号。
一个简单的猜测,我想您会在import语句后错过分号。
解决方案是,您可以先直接在Cordova项目中修改Java源代码,然后将修改同步到独立插件。
您可以做一件事。您可以使用plugman再次创建此插件,但使用不同的命令,即
plugman create --name AmILate --plugin_id cordovapluginamilate --plugin_version 0.0.1
然后再次执行相同的步骤。
我已经正确使用了它并且可以正常工作,但是当我在javascript和java类的cordovapluginamilate中创建另一个名为myMethod的函数时,出现了自定义插件错误
我在github https://github.com/vishuhanda001/cordovaaddcustomplugin上共享我的插件代码
我已经评论了coolMethod,而是尝试在javascript和java文件中使用myMethod,但是在访问它时出现了以上错误,尽管如果我取消注释coolMethod,我的coolmethod函数插件只能正常工作。不知道发生了什么事,请帮助吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.