铬

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

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

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

答案1

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

截屏

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

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

  1. 高级设置 -> 隐私、内容设置 -> 处理程序
  2. 选择“允许网站请求成为协议的默认处理程序”

答案2

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

Chromium 浏览器中的 Google 日历提供处理 webcal 协议的功能

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

撤消忽略 Chromium 浏览器中的协议处理程序

火狐

我找到了这个在 stackexchange 上发帖这解释了如何在 Firefox 中实现同样的事情,但这在 Firefox 12 和 15 上对我来说不起作用:如果我禁用“从不保存历史记录”选项(私人浏览模式),这对我有用:

转到 Google 日历的网站并按Ctrl+Shift+K

将其粘贴到 > 符号后面:

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

按下回车键并单击Add application工具栏下方出现的按钮。

Firefox 控制台

Firefox 接受协议处理程序

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

答案3

截至 2020 年 1 月,我已解决这为了火狐执行以下操作:

  • 关于:配置- 转变dom.registerContentHandler.enabled真的
  • 打开Google 日历
  • Ctrl+Shift+K打开控制台;
  • 复制以下代码,粘贴到控制台并按 Enter:

    javascript:window.navigator.registerProtocolHandler(“webcal”,https://calendar.google.com/calendar/r?cid=%s","谷歌日历");

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

在此之前,我尝试过使用尤达大师的解决方案,但没有成功——无论如何,欢呼吧,它启发了我仔细查看 about:config 条目并发现这种方法。

答案4

由于我遇到了与 OP 相同的问题,并且自从发布接受的答案以来情况发生了变化,所以我想分享我的发现。以下说明主要针对 Firefox,但除了一些小差异外,它们应该也可以在 Chrome 上运行。

[2019-03-08] 更新:反映新的 Firefox 行为

因为使用

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

在 Firefox 的控制台上显示

安全错误:权限被拒绝添加https://www.google.com/calendar/render?cid=%s作为协议处理程序

如今,这里有一种新方法可以“实现这一目标”:

  1. 导航至about:config,单击按钮确认风险。
  2. 类型webcal,将列表过滤为类型的项目gecko.handlerService.schemes.webcal.[...]
  3. 点击Edit所选项目右侧的按钮[...].name(因为30 盒曾是Firefox 67 已放弃,我选择了[...].0.name
  4. 输入您想要的名称,例如 ,Google Calendar然后单击Save
  5. 单击Edit相应[...].uriTemplate项目的按钮,即所编辑项目的正下方的按钮。
  6. 粘贴 URLhttps://calendar.google.com/calendar/r?cid=%s并单击Save
  7. 依次点击⚙ Options⚙ General菜单选项,然后向下滚动到Applications段落。
  8. webcal通过在列表上方的搜索框中输入或滚动来搜索列表。
  9. 单击条目右半部分的下拉菜单并选择Use Google Calendar(或在指令#4中选择的任何名称)。

测试日历:https://www.webcal.fi/en/calendars.php

HTH。如果没有,请在下面留言。

相关内容