Календарь Google как обработчик веб-протокола по умолчанию для файлов iCal/ICS

Я бы хотел, чтобы в Календаре Google открывались URI со схемой Webcal (википедия) (доставка файлов ICS), аналогично тому, как Gmail может быть установлен в качестве обработчика по умолчанию для mailto: ссылки.

В частности, я хотел бы, чтобы Календарь Google импортировал их в мой основной календарь. (Вы можете вручную импортировать файл ICS в Календарь Google, нажав на маленькую стрелку рядом с Другими календарями, выбрав Импортировать календарь из раскрывающегося списка, перейдя к файлу.ICS и выбрав Импорт.)

Я не знаю, возможно ли это, но я надеюсь, что у кого-нибудь будет отличная идея.

3 ответа

Решение

хром

Браузер Chromium предлагает эту опцию при первом входе в Календарь Google:

Календарь Google в браузере Chromium предлагает обрабатывать веб-протоколы

Если вы случайно ответили No на этот вопрос вы можете нажать Wrench кнопку панели инструментов и перейдите к Settings, Нажмите Show advanced settings, находить Content settings... (только после заголовка конфиденциальности) и найдите Manage handlers кнопка. Нажмите на X рядом с игнорируемым протоколом, который вы хотите удалить. Кроме того, вы можете ввести protocol handlers Окно поиска в настройках Chromium. Смотрите скриншот ниже.

Отменить игнорирование обработчика протокола в браузере Chromium

Fire Fox

Я нашел этот пост в 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 принимают протокол Hanlder

Возможно, вам придется переключить gecko.handlerService.allowRegisterFromDifferentHost вариант в about:config в true прежде чем пытаться это (если Google перенаправляет вас на локальный домен Google). Не забудьте вернуть значение false после вызова функции registerProtocolHandler, поскольку вредоносные сайты могут использовать это. Подробности здесь.

В более новых версиях Chromium/Chrome вам необходимо войти в календарь Google и щелкнуть значок с ромбами в адресной строке.

Скриншот

Выберите "Использовать Календарь Google", затем нажмите "Готово". Это зарегистрирует календарь Google в качестве обработчика веб-ссылок.

Замечания:
Возможно, вам придется настроить Chromium, чтобы сайты стали обработчиками протоколов по умолчанию. Вы можете сделать это через:

  1. Расширенные настройки -> Конфиденциальность, Настройки контента -> Обработчики
  2. Выберите "Разрешить сайтам запрашивать статус обработчиков протоколов по умолчанию"

По состоянию на январь 2020 года мне удалось решить эту проблему для Firefox, выполнив следующие действия:

  • about:config - установить для dom.registerContentHandler.enabled значение true;
  • открыть календарь Google;
  • нажмите Ctrl+Shift+K, чтобы открыть консоль;
  • скопируйте следующий код, вставьте его в консоль и нажмите Enter:

    javascript:window.navigator.registerProtocolHandler("webcal","https://calendar.google.com/calendar/r?cid=%s","Календарь Google");

После этих шагов вы должны увидеть полосу шириной окна под адресной строкой, спрашивающую вас, хотите ли вы установить календарь Google в качестве обработчика webcal по умолчанию.

До этого я пытался использовать основное решение Йоды, но оно не сработало - во всяком случае, ура, это вдохновило меня поближе взглянуть на записи about:config и открыть для себя этот метод.

Поскольку я столкнулся с тем же вопросом, что и ОП, и после опубликования принятого ответа все изменилось, я решил поделиться своими выводами. Следующие инструкции в основном относятся к Firefox, но, кроме небольших различий, они должны работать и в Chrome.

[2019-03-08] Обновление: отражает новое поведение Firefox

Потому что используя

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

в консоли Firefox приводит к

SecurityError: В доступе отказано в добавлении https://www.google.com/calendar/render?cid=%s в качестве обработчика протокола

в настоящее время, вот новый способ все еще "сделать это":

  1. Перейдите к about:config, подтверждая риск, нажав на кнопку.
  2. Тип webcal, фильтрация списка по элементам типа gecko.handlerService.schemes.webcal.[...],
  3. Нажмите кнопку Изменить справа от выбранного вами [...].name пункт (так как 30 коробок был заброшен с Firefox 67, я выбрал [...].0.name)
  4. Введите желаемое имя, например, Google Calendar и нажмите Сохранить.
  5. Нажмите кнопку Изменить вашего соответствующего [...].uriTemplate пункт, то есть тот, что чуть ниже вашего отредактированного.
  6. Вставьте URL https://calendar.google.com/calendar/r?cid=%s и нажмите Сохранить.
  7. Перейдите к параметрам Firefox для связанных приложений, последовательно нажимая , ⚙ Параметры, ⚙ Общие параметры меню, а затем прокручивая вниз до Applications параграф.
  8. Поиск в списке для webcal либо введя его в поле поиска чуть выше списка, либо с помощью прокрутки.
  9. Нажмите раскрывающийся список в правой части записи и выберите Use Google Calendar (или любое другое имя, которое вы выбрали в инструкции № 4).

Тестовые календари: https://www.webcal.fi/en/calendars.php

НТН. Если нет, просто оставьте комментарий ниже.

Другие вопросы по тегам