#javascript #android #cordova
#javascript #Android #cordova
Вопрос:
Я хочу загрузить веб-сайт с его URL-адресом в Cordova WebView в моем проекте Cordova.
Это работает нормально (сайт загружен).
Я разработал пользовательский плагин Cordova, часть javascript удалена, и она хорошо работает с моим проектом iOS, но не с моим проектом Android.
Android (Java) часть плагина не попала.
Вот код, который я добавил в config.xml:
<feature name="HybridBridge">
<param name="android-package" value="HybridBridge"/>
</feature>
Код Java-части плагина:
public class HybridBridge extends CordovaPlugin {
public static final String ACTION_ADD_CALENDAR_ENTRY = "triggerAction";
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
try {
if (ACTION_ADD_CALENDAR_ENTRY.equals(action)) {
JSONObject arg_object = args.getJSONObject(0);
// Do something
callbackContext.success();
return true;
}
callbackContext.error("Invalid action");
return false;
} catch(Exception e) {
System.err.println("Exception: " e.getMessage());
callbackContext.error(e.getMessage());
return false;
}
}
}
Я поставил точку останова непосредственно перед попыткой, и она так и не была достигнута.
Код javascript:
var HybridBridge = {
createEvent: function(title) {
cordova.exec(
successCallback, // success callback function
errorCallback, // error callback function
'HybridBridge', // mapped to our native Java class called "CalendarPlugin"
'triggerAction', // with this action name
[{ // and this array of custom arguments to create our entry
"some arguments": title,
}]
);
}
}
Скажите мне, если вам понадобится еще какой-нибудь код.
Комментарии:
1. В вашем js-коде вы вызываете действие addCalendarEntry, в то время как в собственном плагине вы сравниваете, равно ли действие triggerAction
2. О, да, это был локальный код плагина, извините, на удаленном сайте это фактически triggerAction.