Календарь Google как обработчик веб-протокола по умолчанию для файлов iCal/ICS
Я бы хотел, чтобы в Календаре Google открывались URI со схемой Webcal (википедия) (доставка файлов ICS), аналогично тому, как Gmail может быть установлен в качестве обработчика по умолчанию для mailto: ссылки.
В частности, я хотел бы, чтобы Календарь Google импортировал их в мой основной календарь. (Вы можете вручную импортировать файл ICS в Календарь Google, нажав на маленькую стрелку рядом с Другими календарями, выбрав Импортировать календарь из раскрывающегося списка, перейдя к файлу.ICS и выбрав Импорт.)
Я не знаю, возможно ли это, но я надеюсь, что у кого-нибудь будет отличная идея.
3 ответа
хром
Браузер Chromium предлагает эту опцию при первом входе в Календарь Google:

Если вы случайно ответили No на этот вопрос вы можете нажать Wrench кнопку панели инструментов и перейдите к Settings, Нажмите Show advanced settings, находить Content settings... (только после заголовка конфиденциальности) и найдите Manage handlers кнопка. Нажмите на X рядом с игнорируемым протоколом, который вы хотите удалить. Кроме того, вы можете ввести protocol handlers Окно поиска в настройках 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кнопка, которая должна появиться под панелью инструментов.


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

Выберите "Использовать Календарь Google", затем нажмите "Готово". Это зарегистрирует календарь Google в качестве обработчика веб-ссылок.
Замечания:
Возможно, вам придется настроить Chromium, чтобы сайты стали обработчиками протоколов по умолчанию. Вы можете сделать это через:
- Расширенные настройки -> Конфиденциальность, Настройки контента -> Обработчики
- Выберите "Разрешить сайтам запрашивать статус обработчиков протоколов по умолчанию"
По состоянию на январь 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 в качестве обработчика протокола
в настоящее время, вот новый способ все еще "сделать это":
- Перейдите к
about:config, подтверждая риск, нажав на кнопку. - Тип
webcal, фильтрация списка по элементам типаgecko.handlerService.schemes.webcal.[...], - Нажмите кнопку Изменить справа от выбранного вами
[...].nameпункт (так как 30 коробок был заброшен с Firefox 67, я выбрал[...].0.name) - Введите желаемое имя, например,
Google Calendarи нажмите Сохранить. - Нажмите кнопку Изменить вашего соответствующего
[...].uriTemplateпункт, то есть тот, что чуть ниже вашего отредактированного. - Вставьте URL
https://calendar.google.com/calendar/r?cid=%sи нажмите Сохранить. - Перейдите к параметрам Firefox для связанных приложений, последовательно нажимая ≡, ⚙ Параметры, ⚙ Общие параметры меню, а затем прокручивая вниз до
Applicationsпараграф. - Поиск в списке для
webcalлибо введя его в поле поиска чуть выше списка, либо с помощью прокрутки. - Нажмите раскрывающийся список в правой части записи и выберите
Use Google Calendar(или любое другое имя, которое вы выбрали в инструкции № 4).
Тестовые календари: https://www.webcal.fi/en/calendars.php
НТН. Если нет, просто оставьте комментарий ниже.