Я провел немало исследований и не могу найти, почему это не работает. У меня есть приложение для Android на базе Кордовы в Eclipse под управлением Cordova 2.7.0. Я хочу создать простой плагин, который просто предупреждает пользователя о его завершении.Создание плагина helloWorld для Android с использованием Кордовы и Eclipse
Мой index.html
<head>
<script type="text/javascript" src="cordova-2.7.0.js"></script>
<script>
window.func = function(str,callback){
alert("Outside Call Working");
cordova.exec(callback, function(err){alert(err)},"HelloPlugin","echo", [str]);
}
function callPlugin(str){
alert("JS Working");
window.func(str,function(){
alert("Done!");
});
}
</script>
</head>
<body>
<h2>PluginTest</h2>
<a onclick="callPlugin('Plugin Working!')">Click me</a>
</body>
Моя config.xml линия, где я добавить модуль
<plugin name="HelloPlugin" value="org.apache.cordova.plugin.HelloPlugin" />
и мой фактический Plugin HelloPlugin.java, который находится в SRC/COM/например/plugintest право рядом с MainActivity.java
package com.example.plugintest;
import org.apache.cordova.api.CallbackContext;
import org.apache.cordova.api.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;
public class HelloPlugin extends CordovaPlugin{
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
/*if(action.equals("echo")){
String message = args.getString(0);
callbackContext.success(message);
return true;
}*/
callbackContext.success(action);
return true;
}
}
Любая помощь очень ценится!
Обновленный мой конфигурационный файл и все еще не сигарой. Если это помогает оповещениям, которые я получаю, это «JS Working», а затем «Outside Call Working», а затем я ничего не получаю, даже сообщение об ошибке. –
Когда я это делаю, я получаю «JS Working», «Outside call working», «Done!», Что ожидается, потому что вы никогда не получите возвращаемое значение (строка «Plugin Working» в вашем обратном вызове.) Считаю, что вы ничего не получаете от сообщения «Готово», у вас все еще может быть что-то испорченное в вашем конфиге. У меня были оба моих файла в 'com.example.plugintest', package, а строка в моем файле конфигурации была тем, что у меня было выше. Вы не видите _anything_ в журналах? – MBillau
То, что я делал. Я думаю, что это связано с тем, что кордова не готова. Я играю с слушателем deviceready, но до сих пор не получаю этого, чтобы работать. Я принимаю ваш ответ, поскольку он, очевидно, работает на вас. Моя конфигурация такая же, как ваша. Поэтому я не знаю, почему это сработает для вас, а не для меня. Вы используете cordova 2.7? –