Thunderbird:如何访问日历?
Posted
技术标签:
【中文标题】Thunderbird:如何访问日历?【英文标题】:Thunderbird: How to access the calendar? 【发布时间】: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 连接(在后台运行一些操作)?
【问题讨论】:
【参考方案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 的信息。最重要的方法是addItem
、modifyItem
、deleteItem
、getItem
和getItems
。
至于在 Thunderbird 中创建永久连接,最好使用 Web 套接字,您应该可以在任何 DOM 窗口中使用它。创建自己的例如可能是有意义的。带有iframe
。
【讨论】:
以上是关于Thunderbird:如何访问日历?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Thunderbird/Lightning 创建扩展
Thunderbird/Sunbird 是唯一可以在网络文件夹中读写 .ics 文件的软件吗?
[daily] 使用thunderbird通过davmail代理访问Microsoft Exchange Service(OWA)