【问题标题】:How can I properly delete calendar events using the PhoneGap Calendar plugin?如何使用 PhoneGap 日历插件正确删除日历事件?
【发布时间】:2017-04-17 09:51:48
【问题描述】:

我目前在我的应用程序中使用PhoneGap Calendar plugin,我可以使用 REST API 调用将事件添加到设备日历。现在我想将提醒数据从网络同步到设备日历。为了测试,我使用以下 JSON 格式的数据:

  [ { title: 'Anuj Event',
    location: 'Test',
    notes: 'It is Party Time',
    startDate: new Date(2016,11, 3, 12, 10, 0, 0, 0),
    endDate: new Date(2016, 11, 3, 18, 45, 0, 0, 0),
  },{
        title: 'Rahul Event',
    location: 'Noida',
    notes: 'Work Hard',
    startDate: new Date(2016,11, 2, 12, 10, 0, 0, 0),
    endDate: new Date(2016, 11, 2, 18, 45, 30, 45, 0),
  }]  

我的用户界面如下所示:

整个过程运行良好,但我面临两个问题:

    1234563在设备上,如何确定两者有区别,并确保应用同步时删除“Anuj Event”?
  1. 从日历中删除事件时,特定日期时间范围内的所有事件都会被删除,而不是按标题。例如,我一天有三个事件,一个是早上,第二个是晚上,第三个是晚上。如果我想删除最后一个事件,那么我使用以下参数:

    startDate: new Date(2016,11, 1, 15, 32, 10, 50, 0), endDate: new Date(2016, 11, 1, 18, 45, 30, 45, 0)

    但这最终也会删除其他事件,我该如何解决这个问题?

【问题讨论】:

    标签: angularjs ionic-framework calendar


    【解决方案1】:

    我将首先回答您关于删除事件的第二个问题。您依赖于日期范围,当删除事件时还有几个其他参数可用时,如plugin documentation 中所示:

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

    如您所见,可以将标题作为参数传递,这应该只删除与titlestartDateendDate 匹配的事件。看起来你正在使用ngCordova,所以看起来像这样:

    $cordovaCalendar.deleteEvent({
      newTitle: 'Anuj Event',
      startDate: new Date(2015, 2, 12, 19, 0, 0, 0, 0),
      endDate: new Date(2015, 2, 12, 22, 30, 0, 0, 0)
    }).then(function (result) {
      // success
    }, function (err) {
      // error
    });
    

    关于如何保持网络和设备日历同步的问题。我建议您查看this question,因为它试图从更广泛的意义上回答您的问题。本质上,你必须想出一个同步数据的策略。关于如何实现这一点的细节很难回答,因为它需要深入了解您的应用程序的工作原理。我建议您根据我提到的问题尝试一些事情,如果遇到更具体的问题,请提出一个新问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多