我建设使用的PhoneGap(又名科尔多瓦)的Android应用程序,和我遇到了麻烦日历的整合工作。 免责声明:我是小白Android和PhoneGap的两个,请多多包涵。
所有我想要做的是一个事件添加到用户的日历。 继本教程中 ,我已经创建了一个尝试启动日历意图的插件。 代码如下所示:
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");
}
}
JavaScript代码来调用这个插件是标准的:
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.");
}
}
};
Android的代码是越来越调用(使用断点确认)。 但是,发回Javascript代码的结果是一个错误:
无法找到明确的活动类{org.myorg.appname / org.myorg.appname.CalendarPlugin}; 有你宣布你的AndroidManifest.xml这个活动?
有没有在本教程中,这使我相信,我失去了一些东西(也行,CalendarPlugin代码被调用成功加入AndroidManifest.xml中提及,所以怎么可能有一个错误,说的CalendarPlugin类找不到? )。 如果确实是我需要CalendarPlugin添加到清单,我怎么会去这样做呢?