我计划开发一种工具(在Windows PC上运行),可以比较和合并不同日历之间的日历事件。我的移动设备和Lightning日历应该得到支持。
我的想法是为我的移动设备编写一个通过TCP或UDP连接到该工具的应用程序,以便该工具能够通过向应用程序发送命令来修改移动设备的日历。
不幸的是,我不知道如何使用我的工具访问Thunderbird Lightning日历。
问题1:(可能性1)
是否可以安全地从其他应用程序(例如直接访问SQLite存档)读取/写入Thunderbird(Lightning)日历?
"以安全的方式"意味着:没有风险,日历格式在下一个Lightning版本中发生变化,写入事件将会破坏它!
问题2:(可能性2)
是否有可能从另一个Thunderbird插件访问Lightning日历数据?
(我在Google上搜索了2个小时但没有找到任何内容!)
是否有可能创建一个永久性的"来自Thunderbird插件的TCP连接(在后台运行某些操作)?
答案 0 :(得分: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
界面,您可以阅读here。最重要的方法是addItem
,modifyItem
,deleteItem
,getItem
和getItems
。
至于在Thunderbird中创建永久连接,最好使用Web套接字,您应该能够在任何DOM窗口中使用它。创建自己的例如它可能是有意义的。使用iframe
。