Kalendarz Google jako domyślny moduł obsługi protokołu internetowego dla plików iCal / ICS

20

Chciałbym, aby Kalendarz Google otwierał identyfikatory URI za pomocą schematu Webcal (wikipedia) (dostarczającego pliki ICS), podobnie jak Gmail może być ustawiony jako domyślny moduł obsługi mailto:linków.

Mówiąc dokładniej, chciałbym, aby Kalendarz Google zaimportował je do mojego głównego kalendarza. (Możesz ręcznie zaimportować plik ICS z Kalendarza Google, klikając małą strzałkę obok opcji Inne kalendarze, wybierając opcję Importuj kalendarz z listy rozwijanej, przechodząc do pliku .ICS i wybierając opcję Importuj.)

Nie wiem, czy to możliwe, ale mam nadzieję, że ktoś będzie miał świetny pomysł.

Rasmus
źródło

Odpowiedzi:

14

Chrom

Przeglądarka chromowa oferuje tę opcję podczas pierwszego logowania do Kalendarza Google:

Kalendarz Google w przeglądarce Chromium oferuje obsługę protokołów internetowych

Jeśli przypadkowo odpowiedziałeś Nona to pytanie, możesz nacisnąć Wrenchprzycisk paska narzędzi i przejść do Settings. Kliknij Show advanced settings, znajdź Content settings...(tuż za nagłówkiem Prywatność) i znajdź Manage handlersprzycisk. Kliknij Xobok zignorowanego protokołu, który chcesz usunąć. Możesz też wpisać w protocol handlerspolu wyszukiwania w ustawieniach Chromium. Zobacz zrzut ekranu poniżej.

Cofnij ignorowanie modułu obsługi protokołu w przeglądarce Chromium

Firefox

Znalazłem ten post na stackexchange, który wyjaśnia, jak osiągnąć to samo w Firefoksie, ale to nie działa dla mnie w Firefoksie 12 i 15: działa to dla mnie, jeśli wyłączę opcję Nigdy nie zapisuj historii (tryb przeglądania prywatnego):

Przejdź do strony Kalendarza Google i naciśnij Ctrl+Shift+K.

Wklej to po znaku>:

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

Naciśnij klawisz Enter i kliknij Add applicationprzycisk, który powinien pojawić się pod paskiem narzędzi.

Konsola Firefox

Firefox akceptuje zmiany protokołu

Być może trzeba włączyć gecko.handlerService.allowRegisterFromDifferentHostopcję w about:configcelu trueprzed podjęciem próby to (jeśli google przekierowuje do lokalnej domenie Google). Pamiętaj, aby zwrócić wartość false po wywołaniu funkcji registerProtocolHandler, ponieważ złośliwe strony mogą to wykorzystać. Zobacz szczegóły tutaj .

jeremija
źródło
Osobiście szukam opcji dla Chrome / Chromium. Jeśli ktoś nie zareagował poprawnie przy pierwszym logowaniu, czy są dostępne opcje?
Rasmus
Tak, możesz usunąć zignorowany moduł obsługi protokołu. Zobacz moją zredagowaną odpowiedź!
jeremija
1
Zauważyłem, że muszę uruchomić javascript:navigator.registerProtocolHandler("webcal","https://www.google.com/calendar/render?cid=%s","Google Calendar");pasek lokalizacji w Google Chrome, aby działał.
Mikko Rantalainen
Próbowałem rozwiązania Firefox, ale po kliknięciu pliku .ics pojawia się okienko podręczne do przechowywania lub otwierania za pomocą programu gedit (ponieważ jest to plik VCS / ICS). btw superuser.com/a/442494/216033 wspomina o podobnym rozwiązaniu.
TiloBunt
tutaj test ics (znalazłem go podczas mojego wyszukiwania rozwiązań) w kalendarzu-googleproductforums-com.googlegroups.com/attach/…
TiloBunt
15

W nowszych wersjach Chromium / Chrome musisz zalogować się do kalendarza Google i kliknąć nakładającą się ikonę diamentu na pasku adresu.

Zrzut ekranu

Wybierz „Użyj Kalendarza Google”, a następnie kliknij Gotowe. Spowoduje to zarejestrowanie kalendarza Google jako modułu obsługi linków internetowych.

Uwaga:
może być konieczne ustawienie Chromium, aby umożliwić stronom stanie się domyślnymi modułami obsługi protokołu. Możesz to zrobić poprzez:

  1. Ustawienia zaawansowane -> Prywatność, Ustawienia treści -> Programy obsługi
  2. Wybierz „Zezwalaj witrynom na prośby o stanie się domyślnymi modułami obsługi protokołów”
piwonie
źródło
Nie działa w chromie ...
Banee Ishaque K
1

Ponieważ natknąłem się na to samo pytanie co PO i rzeczy się zmieniły od czasu opublikowania zaakceptowanej odpowiedzi, pomyślałem, że podzielę się swoimi odkryciami. Poniższe instrukcje dotyczą głównie Firefoksa, ale oprócz niewielkich różnic powinny również działać w Chrome.

[2019-03-08] Aktualizacja: odzwierciedlają nowe zachowanie Firefoksa

Ponieważ za pomocą

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

w konsoli Firefox powoduje, że

SecurityError: Odmowa zgody na dodanie https://www.google.com/calendar/render?cid=%s jako procedury obsługi protokołu

obecnie jest nowy sposób, aby nadal „sprawić, by się stało”:

  1. Przejdź do about:config, potwierdzając ryzyko, klikając przycisk.
  2. Wpisz webcal, filtrując listę do elementów typu gecko.handlerService.schemes.webcal.[...].
  3. Kliknij Editprzycisk po prawej stronie wybranego [...].nameelementu (ponieważ 30 pudełek zostało porzuconych w przeglądarce Firefox 67 , wybrałem [...].0.name)
  4. Wpisz żądaną nazwę, np. Google CalendarI kliknij Save.
  5. Kliknij Editprzycisk odpowiedniego [...].uriTemplateelementu, tj. Tego tuż pod edytowanym.
  6. Wklej adres URL https://calendar.google.com/calendar/r?cid=%si kliknij Save.
  7. Przejdź do opcji Firefoksa dla powiązanych aplikacji przez kolejne kliknięcie , ⚙ Options, ⚙ Generalopcje menu, a następnie przechodząc do Applicationsust.
  8. Wyszukaj listę webcal, wpisując ją w polu wyszukiwania tuż nad listą lub przewijając.
  9. Kliknij menu rozwijane w prawej połowie wpisu i wybierz Use Google Calendar(lub dowolną nazwę wybraną w instrukcji nr 4).

Testuj kalendarze: https://www.webcal.fi/en/calendars.php

HTH. Jeśli nie, zostaw komentarz poniżej.

Yoda
źródło
Wykonałem wszystkie kroki, ale nadal nie działa dla mnie na FF 50.1.0 / Ubuntu x64. Wszystko jest tak, jak powiedziałeś, ale ics nadal wywołuje okno dialogowe z obsługą zawartości (zapisz lub uruchom aplikację). Próbowałem navigator.registerContentHandlermetody, ale nadal nie ma wyników, identyfikator URI / gcal nie jest rejestrowany dla typu mime:text/calendar
b1r3k
1
Przepraszamy, ale wygląda na to, że Google lub Mozilla coś zmieniły i dlatego nie działa w tej chwili. Chociaż nadal możesz ręcznie dodać pozycję dla gecko.handlerService.schemes.webcal.X.namei gecko.handlerService.schemes.webcal.X.uriTemplate(gdzie X jest liczbą wyższą niż najwyższa bieżąca) w about:configadresie URL. potem możesz przejść do instrukcji nr 5.
Yoda
Właśnie spróbowałem tego na najnowszym Google Chrome bez powodzenia. Mogłem zmusić program obsługi do zarejestrowania się, ale bez powodzenia w ładowaniu pliku ICS do Google Cal z zarejestrowanym programem.
Craig Lambie
@CraigLambie Po pierwsze, to smutne, że moja odpowiedź jest „zredagowana -1” przez niezadowolonych użytkowników Chrome. Po drugie, nigdy nie powiedziałem, że „instrukcje działają także w Chrome”. Zamiast tego wyraźnie powiedziałem: „ oprócz drobnych różnic powinny one działać w Chrome”! Wreszcie, ponieważ nigdy nie będę korzystać z Chrome, po prostu nie dbam o to, jak obsługuje linki internetowe - w Firefoksie to działa i to był powód tej całej odpowiedzi od samego początku - w przypadku rozwiązań opartych na Chromium zobacz odpowiedzi na @peonicles lub @jeremija i poproś o dalsze poprawki Chrome.
Yoda