问题描述
我希望 Google 日历使用 Webcal (wikipedia) 方案(传递 ICS 文件)打开 URI,类似于如何将 Gmail 设置为 mailto:
链接的默认处理程序。
更具体地说,我希望 Google 日历将它们导入我的主日历。 (您可以在 Google 日历中手动导入 ICS 文件,方法是单击其他日历旁边的小箭头,从下拉列表中选择导入日历,导航到 .ICS 文件,然后选择导入。)
我不知道这是否可能,但我希望有人会有一个好主意。
最佳办法
在较新版本的 Chromium/Chrome 中,您需要登录谷歌日历并单击地址栏中重叠的菱形图标。
选择“使用谷歌日历”,然后点击完成。这会将 google 日历注册为 webcal 链接的处理程序。
注意:\n您可能需要设置 Chromium 以允许站点成为默认协议处理程序。您可以通过以下方式进行:
-
高级设置->隐私,内容设置 ->处理程序
-
选择“允许站点要求成为协议的默认处理程序”
次佳办法
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 条目并发现这种方法。