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ł.

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 .


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”

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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.