To ciekawy pomysł. Nie wydaje mi się, że istnieje obecnie rozwiązanie cross-node.js. I nie natknąć tego wątku ludzi prosząc o to samo:
https://github.com/rogerwang/node-webkit/issues/951
Electron obsługującego go teraz z app.setAsDefaultProtocolClient
API (since v0.37.4) dla MacOS i Windows.
Nie byłoby strasznie trudno napisać bibliotekę, aby to zrobić.
Okna:
Na stronie okna trzeba by zarejestrować aplikację jako aplikacji, która obsługuje ten schemat URI.
Musisz utworzyć wpis rejestru dla danej aplikacji:
HKEY_CLASSES_ROOT
alert
(Default) = "URL:Alert Protocol"
URL Protocol = ""
DefaultIcon
(Default) = "alert.exe,1"
shell
open
command
(Default) = "C:\Program Files\Alert\alert.exe" "%1"
Potem, gdy aplikacja jest prowadzony przez okna, powinieneś być w stanie zobaczyć argumenty w process.argv[]
. Upewnij się, że uruchamiasz powłokę, aby uruchomić węzeł, a nie tylko aplikację.
Original MSDN article
Uwaga ta wymaga uprawnień administratora i ustawia całego systemu obsługi. Aby to zrobić dla każdego użytkownika, można użyć zamiast niego HKEY_CURRENT_USER\Software\Classes
, jako implementację elektronu does it.
Apple:
Wspomniany "OS X" artykuł w komentarzu github jest rzeczywiście dla iOS.Chciałbym spojrzeć na poniższej instrukcji programowania do informacji na temat rejestrowania aplikacji do obsługi systemu URL:
Apple Dev Documentation
Podsumowując, trzeba stworzyć usługę uruchamiania i wypełnić plik .plist z CFBundleURLTypes
, to pole jest tablicą i powinno być wypełnione tylko nazwą protokołu, tj. http
Następujące Super User Question ma lepsze rozwiązanie, ale jest na ustawienie użytkownika.
„Plik szukacie jest ~/Library/Preferences/com.apple.LaunchServices.plist.
Posiada tablicę o nazwie LSHandlers i słownika dzieci, które definiują się LSHandlerURLScheme może zostać odpowiednio zmodyfikowany z LSHandlerRole . "
Linux: (? Zaskoczenia)
Z tego co mogę powiedzieć, istnieje kilka sposobów, aby tego dokonać w Linux
Gnome posiada narzędzie, które pozwoli Ci zarejestrować program obsługi url w3 archives
gconftool-2 -t string -s /desktop/gnome/url-handlers/tel/command "bin/vonage-call %s"
gconftool-2 -s /desktop/gnome/url-handlers/tel/needs_terminal false -t bool
gconftool-2 -t bool -s /desktop/gnome/url-handlers/tel/enabled true
Niektóre z lżejszych menedżerów wagi wyglądają tak, jakby pozwalały tworzyć fałszywe typy mime i rejestrować je jako procedury obsługi protokołów URI.
„Fake-typy MIME są tworzone przez URI z różnym systemem tak: application/x-xdg-od protokołu Aplikacje wspierające specyficzną protokołu URI można dodać fałszywe mime-type z ich klucz mimeType w swoich plikach wejściowych stacjonarnych Łatwo jest więc znaleźć wszystkie aplikacje zainstalowane w systemie obsługującym schemat URI, szukając w pliku mimeinfo.cache. Ponownie plik defaults.list może być użyty do określenia domyślnego programu dla sproficowanego typu URI. " wiki.lxde.org
KDE obsługuje również ich własny sposób manipulowania obsługi URL protokołu:
utworzyć plik: $KDEDIR/share/services/your.protocol
i wypełnić go z odpowiednimi danymi:
[Protocol]
exec=/path/to/player "%u"
protocol=lastfm
input=none
output=none
helper=true
listing=
reading=false
writing=false
makedir=false
deleting=false
od last.fm forums wszystkich miejscach
Nadziei to pomaga.
To nie byłby interfejs Node API, byłby to ustawienie przeglądarki. – hexacyanide
Protokoły @hexacyanide Url są obsługiwane przez system operacyjny, nie przez przeglądarkę, z powodzeniem zaimplementowałem go w systemie Windows (musisz dodać kilka kluczy rejestru), ale chciałeś się dowiedzieć, czy istnieje interfejs API węzła między platformami, a nie osobno wdrażać każdą platformę. –
To może wydawać się niespójne, ponieważ procedury obsługi protokołów mogą być dodawane zarówno w Chrome, jak i Firefox przy użyciu samych ustawień. – hexacyanide