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


20

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

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

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

Ответы:


14

хром

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

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

Если вы случайно ответили Noна этот вопрос, вы можете нажать кнопку на Wrenchпанели инструментов и перейти к Settings. Нажмите Show advanced settings, найдите Content settings...(сразу после заголовка Privacy) и найдите 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, поскольку вредоносные сайты могут использовать это. Подробности здесь .


Лично я ищу вариант для Chrome / Хром. Если один из них не отреагировал должным образом при первом входе в систему, открыты ли варианты?
Расмус

Да, вы можете удалить игнорируемый обработчик протокола. Смотрите мой отредактированный ответ!
Иеремия

1
Я обнаружил, что мне нужно вставить javascript:navigator.registerProtocolHandler("webcal","https://www.google.com/calendar/render?cid=%s","Google Calendar");строку адреса в Google Chrome, чтобы она заработала.
Микко Ранталайнен,

Я попробовал решение Firefox, но при нажатии на файл .ics я получаю всплывающее окно для хранения или открытия с помощью gedit (как это файл VCS / ICS), какой-либо совет по этому поводу? Кстати, superuser.com/a/442494/216033 упоминают подобное решение.
TiloBunt

здесь тест ics (нашел его во время моего
поиска в поисках

15

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

Скриншот

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

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

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

Не работает в Chrome ...
Banee Ishaque K

1

Поскольку я столкнулся с тем же вопросом, что и ОП, и после опубликования принятого ответа все изменилось, я решил поделиться своими выводами. Следующие инструкции в основном относятся к 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. Нажмите Editкнопку справа от выбранного вами [...].nameпредмета (так как 30 ящиков были заброшены с Firefox 67 , я выбрал [...].0.name)
  4. Введите желаемое имя, например, Google Calendarи нажмите Save.
  5. Нажмите Editкнопку вашего соответствующего [...].uriTemplateэлемента, то есть тот, что чуть ниже вашего отредактированного.
  6. Вставьте URL https://calendar.google.com/calendar/r?cid=%sи нажмите Save.
  7. Перейти к настройкам Firefox для связанных приложений, последовательно щелкнув , ⚙ Options, ⚙ Generalпункты меню , а затем прокрутки вниз до Applicationsпункта.
  8. Чтобы webcalнайти список, введите его в поле поиска чуть выше списка или с помощью прокрутки.
  9. Щелкните раскрывающийся список в правой части записи и выберите Use Google Calendar(или любое другое имя, выбранное вами в инструкции № 4).

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

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


Выполнил все шаги, но все еще не работает для меня на FF 50.1.0 / Ubuntu x64. Все как вы сказали, но ics по-прежнему вызывает диалог с обработкой контента (сохранение или запуск приложения). Я пробовал navigator.registerContentHandlerметод, но все еще безрезультатно, URI / gcal не регистрируется для mime-типа:text/calendar
b1r3k

1
Извините, но похоже, что Google или Mozilla что-то изменили, и поэтому в данный момент это не работает. Тем не менее, вы все равно можете вручную добавить запись для gecko.handlerService.schemes.webcal.X.nameи gecko.handlerService.schemes.webcal.X.uriTemplate(где X - это число, превышающее самый высокий текущий) в about:configURL. После этого вы можете продолжить с инструкцией № 5.
Йода

Я только что попробовал это на последнем Google Chrome без удачи. Я мог заставить обработчик зарегистрироваться, но не повезло, загружая файл ICS в Google Cal с этим зарегистрированным обработчиком.
Крейг Лэмби

@CraigLambie Во-первых, довольно грустно, когда мой ответ "редактируется -1" недовольными пользователями Chrome. Во-вторых, я никогда не говорил «инструкции работают и в Chrome». Вместо этого я четко заявил: « Помимо небольших различий они должны работать в Chrome»! И наконец, поскольку я никогда не буду использовать Chrome, мне просто все равно, как он обрабатывает веб-ссылки - для Firefox это работает, и именно с этого и был весь этот ответ с самого начала - для решений на основе Chromium см. Ответы @peonicles или @jeremija и спросите их о дальнейших исправлениях Chrome.
Йода
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.