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


20

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

Більш конкретно, я хотів би, щоб Календар Google імпортував їх до мого основного календаря. (Ви можете імпортувати файл ICS в Календар Google вручну, натиснувши стрілку поруч з Іншими календарями, вибравши Імпортувати календар зі спадного списку, перейти до .ICS-файла та вибрати Імпорт.)

Я не знаю, чи можливо це, але сподіваюся, що хтось матиме чудову ідею.

Відповіді:


14

Хром

Цей веб-переглядач Chrome пропонує цей параметр під час першого входу в Календар Google:

Google Календар у веб-переглядачі Chromium пропонує обробляти веб-протоколи

Якщо ви випадково відповіли Noна це запитання, можете натиснути кнопку Wrenchпанелі інструментів і перейти до Settings. Клацніть Show advanced settings, знайдіть Content settings...(відразу після заголовка конфіденційності) і знайдіть Manage handlersкнопку. Клацніть Xпоруч із ігнорованим протоколом, який потрібно видалити. Крім того, ви можете ввести protocol handlersполе пошуку в налаштуваннях Chromium. Перегляньте знімок екрана нижче.

Скасувати ігнорування обробника протоколів у веб-переглядачі Chromium

Firefox

Я знайшов цю публікацію в stackexchange, яка пояснює, як домогтися того ж у Firefox, але це не працює для мене на Firefox 12 і 15: це працює для мене, якщо я відключую параметр «Ніколи не зберігайте історію» (режим приватного перегляду):

Перейдіть на сайт Google Календар і натисніть Ctrl+Shift+K.

Вставте це після знака>

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

Натисніть клавішу Enter і натисніть Add applicationкнопку, яка повинна з’явитися під панеллю інструментів.

Консоль Firefox

Firefox приймає протокол вішалки

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


Особисто я шукаю варіант для Chrome / Chromium. Якщо ви не реагували належним чином під час першого входу, чи є параметри відкритими?
Расмус

Так, ви можете видалити ігнорований обробник протоколу. Дивіться мою відредаговану відповідь!
jeremija

1
Я виявив, що мені потрібно помістити javascript:navigator.registerProtocolHandler("webcal","https://www.google.com/calendar/render?cid=%s","Google Calendar");в місце розташування в Google Chrome, щоб він працював.
Мікко Ранталайнен

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

тут тестові фотографії (знайшли його під час мого гуглінгу на рішення) Calendar-a-googleproductforums-com.googlegroups.com/attach/…
TiloBunt

15

У нових версіях Chromium / Chrome потрібно увійти в календар google і натиснути значок перекритого алмазу в адресному рядку.

Знімок екрана

Виберіть "Використовувати календар Google", а потім натисніть "Готово". Це зареєструє календар google як обробник веб-посилань.

Примітка.
Можливо, вам знадобиться встановити Chromium, щоб сайти могли стати обробниками протоколів за замовчуванням. Це можна зробити за допомогою:

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

Не працює в хромі ...
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предмета (оскільки Firefox 67 було залишено 30 ящиків , я вибрав )[...].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

HTH. Якщо ні, просто залиште коментар нижче.


Виконав усі кроки, але все ще не працює для мене на 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 він працює, і це було причиною цієї відповіді з самого початку - для рішень на основі хрому див. Відповіді @peonicles або @jeremija і попросіть їх отримати подальші виправлення в Chrome.
Йода
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.