PhoneGapCordova日历集成(Android)

PhoneGapCordova日历集成(Android),第1张

概述我正在使用PhoneGap(又名Cordova)构建 Android应用程序,并且无法使日历集成工作.免责声明:我是Android和PhoneGap的菜鸟,请耐心等待. 我要做的就是在用户的日历中添加一个事件.在this tutorial之后,我创建了一个试图启动Calendar Intent的插件.代码如下所示: public class CalendarPlugin extends Plugi 我正在使用PhoneGap(又名Cordova)构建 Android应用程序,并且无法使日历集成工作.免责声明:我是AndroID和PhoneGap的菜鸟,请耐心等待.

我要做的就是在用户的日历中添加一个事件.在this tutorial之后,我创建了一个试图启动Calendar Intent的插件.代码如下所示:

public class CalendarPlugin extends Plugin {public static final String NATIVE_ACTION_STRING="addToCalendar"; public static final String SUCCESS_ParaMETER="success"; @OverrIDepublic 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,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,"org.myorg.appname.CalendarPlugin","addToCalendar",[resultType]);        }        else {            alert("Calendar function is not available here.");        }    } };

AndroID代码被调用(使用断点确认).但结果发送回JavaScript代码是一个错误:

Unable to find explicit activity class {org.myorg.appname/org.myorg.appname.CalendarPlugin}; have you declared this activity in your AndroIDManifest.xml?

没有提到在教程中添加到AndroIDManifest.xml,这让我相信我遗漏了一些东西(同样,CalendarPlugin代码被成功调用,那么怎么会有错误说找不到CalendarPlugin类? ).如果我确实需要将CalendarPlugin添加到清单中,我该怎么做呢?

解决方法 引用的教程没有涉及意图.您发送数据的意图是您自己的CalendarPlugIn类,这不是您想要的,因为它不处理意图.

有关意图,请参阅http://developer.android.com/guide/topics/intents/intents-filters.html.

此外,如果您搜索SO,您会发现,直到ICS,甚至没有办法在不使用网络服务的情况下正式向Google日历添加内容.有很多方法可以非正式地进行,但是受到谷歌或ODM本身的影响.

更新:

您应该能够使用Phonegap(通过插件)使用意图.我只是添加了评论,请注意,如果您打算在应用中进行日历集成,那么如果您想支持大多数AndroID设备,您可能需要做一些研究.如果您有兴趣在ICS中添加日历活动,请查看:http://developer.android.com/reference/android/provider/CalendarContract.html

Op的编辑

我只需要修复Intent构造函数,这按预期工作:

Uri uri = Uri.parse("content://com.androID.calendar/events");Intent calintent = new Intent("androID.intent.action.INSERT",uri)
总结

以上是内存溢出为你收集整理的PhoneGap / Cordova日历集成(Android)全部内容,希望文章能够帮你解决PhoneGap / Cordova日历集成(Android)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1000824.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存