0

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

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

不幸的是,我不知道如何使用我的工具访问 Thunderbird Lightning 日历。

问题一:(可能性一)

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

“以安全的方式”意味着:没有风险在下一个闪电版本中更改日历格式并且编写事件会破坏它!

问题2:(可能性2)

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

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

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

4

1 回答 1

0

我建议不要使用选项 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界面,您可以在此处阅读。最重要的方法是addItemmodifyItemdeleteItem和。getItemgetItems

至于从 Thunderbird 中创建永久连接,最好使用 Web 套接字,您应该能够在任何 DOM 窗口中使用它。创建自己的例如使用iframe.

于 2017-05-01T22:19:21.770 回答