Integracja kalendarza PhoneGap / Cordova (Android)
Buduję aplikację na Androida przy użyciu PhoneGap (aka Cordova) i mam problem z uruchomieniem integracji kalendarza.Zrzeczenie się: Jestem noobem zarówno dla Androida, jak i PhoneGap, proszę o wyrozumiałość.
Próbuję tylko dodać wydarzenie do kalendarza użytkownika. Następującyten samouczek, Stworzyłem wtyczkę, która próbuje uruchomić Intencję Kalendarza. Kod wygląda tak:
public class CalendarPlugin extends Plugin {
public static final String NATIVE_ACTION_STRING="addToCalendar";
public static final String SUCCESS_PARAMETER="success";
@Override
public PluginResult execute(String action, JSONArray data, String callbackId) {
if (NATIVE_ACTION_STRING.equals(action)) {
Calendar beginTime = Calendar.getInstance();
beginTime.set(2012, 6, 19, 7, 30);
Calendar endTime = Calendar.getInstance();
endTime.set(2012, 6, 19, 8, 30);
Intent calIntent = new Intent((Context) this.ctx, CalendarPlugin.class)
.setAction(Intent.ACTION_INSERT)
.putExtra(Events.TITLE, "A new event")
.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, true)
.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis())
.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis());
this.ctx.startActivity(calIntent);
return new PluginResult(PluginResult.Status.OK, "Smashing success");
}
return new PluginResult(PluginResult.Status.ERROR, "Didn't work bro");
}
}
Kod JavaScript do wywołania tej wtyczki jest standardowy:
var CalendarPlugin = {
callNativeFunction: function (success, fail, resultType) {
if (cordova) {
return cordova.exec( success, fail,
"org.myorg.appname.CalendarPlugin",
"addToCalendar", [resultType]);
}
else {
alert("Calendar function is not available here.");
}
}
};
Kod Android jest wywoływany (potwierdzony przy użyciu punktu przerwania). Ale wynik przesłany do kodu JavaScript jest błędem:
Nie można znaleźć jawnej klasy aktywności {org.myorg.appname / org.myorg.appname.CalendarPlugin}; zadeklarowałeś tę aktywność w swoim pliku AndroidManifest.xml?
Nie ma wzmianki o dodaniu do AndroidManifest.xml w samouczku, co prowadzi mnie do przekonania, że czegoś mi brakuje (równieżCalendarPlugin kod jest wywoływany pomyślnie, więc jak mógł wystąpić błąd mówiącyCalendarPlugin nie można znaleźć klasy?). Jeśli rzeczywiście muszę dodaćCalendarPlugin do manifestu, jak bym to zrobił?