当前位置: 首页>>技术教程>>正文


谷歌日历作为 iCal/ICS 文件的 webcal 协议的默认处理程序

,

问题描述

我希望 Google 日历使用 Webcal (wikipedia) 方案(传递 ICS 文件)打开 URI,类似于如何将 Gmail 设置为 mailto: 链接的默认处理程序。

更具体地说,我希望 Google 日历将它们导入我的主日历。 (您可以在 Google 日历中手动导入 ICS 文件,方法是单击其他日历旁边的小箭头,从下拉列表中选择导入日历,导航到 .ICS 文件,然后选择导入。)

我不知道这是否可能,但我希望有人会有一个好主意。

最佳办法

在较新版本的 Chromium/Chrome 中,您需要登录谷歌日历并单击地址栏中重叠的菱形图标。

选择“使用谷歌日历”,然后点击完成。这会将 google 日历注册为 webcal 链接的处理程序。

注意:\n您可能需要设置 Chromium 以允许站点成为默认协议处理程序。您可以通过以下方式进行:

  1. 高级设置->隐私,内容设置 ->处理程序

  2. 选择“允许站点要求成为协议的默认处理程序”

次佳办法

Chromium

当您首次登录 Google 日历时,Chromium 浏览器会提供此选项:

如果您在这个问题上不小心用 No 回答,您可以按 Wrench 工具栏按钮并转到 Settings 。单击 Show advanced settings ,找到 Content settings...(就在 Privacy 标头之后)并找到 Manage handlers 按钮。单击要删除的已忽略协议旁边的 X。或者,您可以在 Chromium 设置中输入 protocol handlers 搜索框。请参阅下面的屏幕截图。

Firefox

我找到了这个 post on stackexchange,它解释了如何在 Firefox 中实现相同的功能,但这对我在 Firefox 12 和 15 上不起作用:如果我禁用从不保存历史记录选项(私人浏览模式),这对我有用:

\\n

Go to Google Calendar’s site and press Ctrl+Shift+K.

\\n

Paste this after the > sign:

\\n

navigator.registerProtocolHandler("webcal","https://www.google.com/calendar/render?cid=%s","Google Calendar");

\\n

Press the enter key and click the Add application button which should appear below the toolbar.

\\n

在尝试此操作之前,您可能需要将 about:config 中的 gecko.handlerService.allowRegisterFromDifferentHost 选项切换为 true(如果 google 将您重定向到本地 google 域)。请记住在调用 registerProtocolHandler 函数后将其返回为 false,因为恶意站点可能会利用它。查看详细信息 here

第三种办法

截至 2020 年 1 月,我通过执行以下操作为 Firefox 解决了这个问题:

  • about:config – 将 dom.registerContentHandler.enabled 切换为 true;

  • 打开谷歌日历;

  • 按 Ctrl+Shift+K 打开控制台;

  • 复制以下代码,粘贴到控制台并回车:\njavascript:window.navigator.registerProtocolHandler(“webcal”,” https://calendar.google.com/calendar/r?cid=%s “,”Google Calendar”);

完成这些步骤后,您应该会在地址栏下方看到一条 window-width 条纹,询问您是否要将 Google 日历设置为默认的 webcal 处理程序。

在此之前,我尝试使用 Yoda 大师的解决方案,但没有奏效 – 无论如何,干杯,它启发了我仔细查看 about:config 条目并发现这种方法。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12989.html,未经允许,请勿转载。