Jak skonfigurować niestandardową obsługę protokołu w przeglądarce Chrome? Coś jak:
myprotocol: // plik testowy
Potrzebowałbym tego, aby wysłać żądanie do http://example.com?query=testfile , a następnie wysłać httpresponse do mojego rozszerzenia.
google-chrome-extension
custom-protocol
Tester Tester
źródło
źródło
Odpowiedzi:
Poniższa metoda rejestruje aplikację w schemacie URI. Możesz więc użyć mycustproto: w swoim kodzie HTML, aby uruchomić lokalną aplikację. Działa na przeglądarce Google Chrome w wersji 51.0.2704.79 m (64-bit).
Używałem tej metody głównie do cichego drukowania dokumentu bez wyskakującego okna dialogowego drukowania. Wynik jest całkiem niezły i jest bezproblemowym rozwiązaniem do integracji zewnętrznej aplikacji z przeglądarką.
Kod HTML (prosty):
Kod HTML (alternatywny):
Schemat URI będzie wyglądał następująco:
Schemat URI można utworzyć ręcznie w rejestrze lub uruchomić plik „mycustproto.reg” (patrz poniżej).
Przykład mycustproto.reg:
Aplikacja konsoli C # - myprogram.exe:
Spróbuj najpierw uruchomić program, aby upewnić się, że program został umieszczony we właściwej ścieżce:
Kliknij łącze na swojej stronie HTML:
Po raz pierwszy zobaczysz okienko z ostrzeżeniem.
Aby zresetować ustawienie obsługi protokołu zewnętrznego w Chrome:
Jeśli kiedykolwiek zaakceptowałeś niestandardowy protokół w Chrome i chciałbyś zresetować ustawienie, zrób to (obecnie w Chrome nie ma interfejsu użytkownika, który mógłby zmienić ustawienie):
Edytuj „ Stan lokalny ” ten plik pod tą ścieżką:
lub po prostu przejdź do:
Następnie wyszukaj ten ciąg: protocol_handler
Tam zobaczysz niestandardowy protokół.
Uwaga: przed edycją pliku zamknij przeglądarkę Google Chrome. W przeciwnym razie wprowadzona zmiana zostanie nadpisana przez Chrome.
Odniesienie:
https://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
źródło
Preferences
pliku, który znajduje się%localappdata%\Google\Chrome\User Data\Default
Chrome 13 obsługuje teraz
navigator.registerProtocolHandler
interfejs API. Na przykład,Zwróć uwagę, że nazwa twojego protokołu musi zaczynać się od
web+
, z kilkoma wyjątkami dla popularnych protokołów (np.mailto
Itp.). Aby uzyskać więcej informacji, zobacz: http://updates.html5rocks.com/2011/06/Registering-a-custom-protocol-handlerźródło
torrent:
isteam:
linki działają? Czy aplikacje w pakiecie Chrome również mają to ograniczenie?chrome.webNavigation
interfejsu APItel:
linki nigdy nie są zgłaszane.To pytanie jest teraz stare, ale niedawno pojawiła się aktualizacja Chrome (przynajmniej jeśli chodzi o aplikacje w pakietach) ...
http://developer.chrome.com/apps/manifest/url_handlers
i
https://github.com/GoogleChrome/chrome-app-samples/tree/master/samples/url-handler
Pozwala zarejestrować procedurę obsługi dla adresu URL (o ile jesteś jej właścicielem). Niestety nie,
myprotocol://
ale przynajmniej możesz to zrobićhttp://myprotocol.mysite.com
i utworzyć tam stronę internetową, która kieruje ludzi do aplikacji w sklepie z aplikacjami.źródło
Tak to zrobiłem. Twoja aplikacja będzie musiała zainstalować kilka kluczy reg podczas instalacji, a następnie w dowolnej przeglądarce możesz po prostu połączyć się z foo: \ cokolwiekHere.txt, a otworzy ona aplikację i przekaże jej tę wartość.
To nie jest mój kod, tylko coś, co znalazłem w sieci podczas wyszukiwania tego samego pytania. Po prostu zmień wszystkie „foo” w poniższym tekście na żądaną nazwę protokołu i zmień również ścieżkę do swojego exe.
(umieść to w pliku tekstowym jako foo.reg na pulpicie, a następnie kliknij dwukrotnie, aby zainstalować klucze) ----- Poniżej tej linii przechodzi do pliku .reg (NIE wliczając tej linii) --- ---
źródło
Nie jestem pewien, czy to jest właściwe miejsce na moją odpowiedź, ale ponieważ znalazłem bardzo mało pomocnych wątków i to był jeden z nich, zamieszczam tutaj swoje rozwiązanie.
Problem : Chciałem, aby Linux Mint 19.2 Cinnamon otwierał Evolution po kliknięciu
mailto
linków w Chromium. Gmail został zarejestrowany jako domyślny program obsługi w chrome: // settings / handlers i nie mogłem wybrać żadnego innego modułu obsługi.Rozwiązanie : użyj ustawień xdg w konsoli
Rozwiązanie zostało znalezione tutaj https://alt.os.linux.ubuntu.narkive.com/U3Gy7inF/kubuntu-mailto-links-in-chrome-doesn-t-open-evolution i dostosowane do mojego przypadku.
źródło
otwarty
otwórz,
Preferences
a następnie wyszukajexcluded_schemes
, znajdziesz go w 'protocol_handler' usuń ten wykluczony schemat (y), aby zresetować chrome do otwierania adresu URL z domyślną aplikacjąźródło