使用 PhoneGap/jQuery Mobile 以编程方式在 iPhone/Android 日历中添加事件?

Posted

技术标签:

【中文标题】使用 PhoneGap/jQuery Mobile 以编程方式在 iPhone/Android 日历中添加事件?【英文标题】:Programmatically add event in iPhone/Android Calendar with PhoneGap/jQuery Mobile? 【发布时间】:2011-12-02 20:55:31 【问题描述】:

如何从 ios/android 中的 javascript / jQuery Mobile / PhoneGap 应用程序创建日历事件?

是否有任何插件,例如 PhoneGap 插件?在官方存储库中没有看到任何内容。

对于 iOS,Event Kit 框架 (iOS 4.0+) 似乎可以add an event。

【问题讨论】:

【参考方案1】:

根据下面的 cmets,it is now possible to create an iCal file for iOS and a vcs file for Android。它需要浏览器/设备嗅探,或者让用户选择,但至少应该是可能的。

【讨论】:

不幸的是,这实际上不起作用...我最近提出了一个问题,关于如何做到这一点,就像iCal is not supported by Android 正如现在讨论的那样,您可以为 iPhone 创建一个 iCal 文件,为 Android 创建一个 vCal 文件。 @superjos 感谢您指出这一点。我要编辑它。现在我只希望这个答案有更多的选票,所以它会脱颖而出。【参考方案2】:

我意识到这是个老问题,但现在有plugin。它有其缺点,但有效。在撰写本文时,它支持以下功能:

iOS 支持:创建(静默)、更新(静默)和删除(静默)事件 Android >= 4:创建(交互和静默)、更新(不支持)、删除(静默)事件 Android

下面是代码示例:

  var startDate = new Date(2014,2,15,18,30,0,0,0);
  var endDate = new Date(2014,2,15,19,30,0,0,0);
  var title = "My nice event";
  var newTitle = "My new nice event";
  var location = "Home";
  var notes = "Some notes about this event.";
  var success = function(message)  
     alert("Success: " + JSON.stringify(message)); 
  ;
  var error = function(message)  
     alert("Error: " + message); 
  ;

  window.plugins.calendar.createEvent(title,location,notes,startDate,endDate,success,error);

  window.plugins.calendar.modifyEvent(title,location,notes,startDate,endDate,newTitle,location,notes,startDate,endDate,success,error);

  window.plugins.calendar.deleteEvent(newTitle,location,notes,startDate,endDate,success,error);

【讨论】:

【参考方案3】:

目前 PhoneGap development roadmap 不包括日历支持。但是,有很多要求。请参阅这篇名为“Calendar plugin following W3C calendar API”的帖子,它指向 PhoneGap-Calendar-Plugin project,其中包括一些对 Android 的初始日历支持。

【讨论】:

另外,它不在 Cordova 路线图上wiki.apache.org/cordova/RoadmapProjects【参考方案4】:

使用最新的 API 将事件添加到 iOS 日历非常简单。 但是,您需要创建自己的插件才能做到这一点。

由于这是特定于平台的,迟早会出现官方的 PhoneGap 插件。

【讨论】:

【参考方案5】:

我找到了适用于 Android 和 iOS 的插件,但它们没有相同的 JavaScript API,因此您必须为两个系统编写不同的代码或添加另一个层。此外,它们不是最新的,需要修复才能与 Cordova 2.2.0 一起运行。更糟糕的是,文档有点短:

安卓

Dcheng's Android Plugin 能够创建、删除和搜索日历事件,但完全过时并且无法按原样工作。在 Android 4.0 中,有一个 Calendar Provider 让事情变得更容易,但我仍然没有找到一个好的插件。 jbajor 只能添加事件,twistandshout 只能搜索事件。

iOS

Felixactv8's iOS Plugin 能够创建、删除和搜索日历事件。请注意,在 iOS 中没有事件 ID,因此搜索您的事件会很有趣。 author explains如何在xcode中添加两个需要的框架:

iphone 日历使用 2 个框架,EventKit.framework 和 EventKitUI.framework.

如果您单击 xcode 图标,您应该会看到项目图标和 目标图标。单击目标图标,然后单击构建阶段。 单击“将二进制文件与库链接”的下拉菜单。单击加号 在窗口底部签名,然后搜索这两个框架。添加 这两个框架,重建项目并运行它。

【讨论】:

以上是关于使用 PhoneGap/jQuery Mobile 以编程方式在 iPhone/Android 日历中添加事件?的主要内容,如果未能解决你的问题,请参考以下文章

防止放大Phonegap + JQuery Mobile

PhoneGap + jQuery Mobile = 缓慢的点击响应时间

使用 PhoneGap / jQuery Mobile 在 Facebook / Twitter / 电子邮件功能上分享

Phonegap jQuery Mobile 应用程序遇到随机重定向

在“PhoneGap + jQuery Mobile”应用程序中正确注册事件

iOS PhoneGap jQuery Mobile App 中的可见滚动条