【问题标题】:Thunderbird: How to access the calendar?Thunderbird:如何访问日历?
【发布时间】:2017-05-01 11:21:08
【问题描述】:

我正计划开发一个工具(在 Windows PC 上运行),它允许比较和合并不同日历之间的日历事件。应该支持我的移动设备和我的 Lightning 日历。

这个想法是为我的移动设备编写一个应用程序,通过 TCP 或 UDP 连接到该工具,以便该工具能够通过向应用程序发送命令来修改移动设备的日历。

很遗憾,我不知道如何使用我的工具访问 Thunderbird Lightning 日历。

问题 1:(可能性 1)

是否可以以安全的方式从另一个应用程序读取/写入 Thunderbird (Lightning) 日历(例如,通过直接访问 SQLite 存档)?

“以一种安全的方式”意味着:日历格式在下一个 Lightning 版本中发生变化并且编写事件不会破坏它的风险!

问题 2:(可能性 2)

是否可以从另一个 Thunderbird 插件访问 Lightning 日历数据?

(我在 Google 上搜索了 2 个小时,但一无所获!)

是否可以从 Thunderbird 插件创建“永久”TCP 连接(在后台运行一些操作)?

【问题讨论】:

    标签: thunderbird-addon thunderbird-lightning


    【解决方案1】:

    我建议不要使用选项 1,但如果必须,您可以检查版本表以查看存储版本是否已更改。这并不经常发生。至于访问日历数据,您可以通过如下方式访问日历管理器和事件:

    Components.utils.import("resource://calendar/modules/calUtils.jsm"); 
    
    let calmgr = cal.getCalendarManager();
    let calendars = calmgr.getCalendars({});
    let mycal = calendars[0]; // pick one
    

    mycal 中的日历将遵循calICalendar 界面,您可以阅读有关here 的信息。最重要的方法是addItemmodifyItemdeleteItemgetItemgetItems

    至于在 Thunderbird 中创建永久连接,最好使用 Web 套接字,您应该可以在任何 DOM 窗口中使用它。创建自己的例如可能是有意义的。带有iframe

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-01
      • 1970-01-01
      相关资源
      最近更新 更多