Eine externe Anwendung kann nicht mehr direkt über eine dedizierte Erweiterung in Chrome aufgerufen werden, aber ich konnte keine finden, die NPAPI nicht verwendet.
Es gibt immer noch eine Methode, die funktionieren sollte, die im Betriebssystem eingerichtet werden muss: Benutzerdefinierte Protokolle, die auch als benutzerdefinierte URI-Schemas bezeichnet werden.
Ein URI-Schema ist der Teil, den Sie am Anfang der URL finden. Einige häufigsten sind: http(s)://
, ftp://
, feed://
, mailto:
, news:
. Die Liste aller bekannten finden Sie in der IANA-Liste der URI-Schemata (Uniform Resource Identifier) .
Diese Protokolle starten lediglich eine Anwendung, die den Parameter verarbeitet. Nachdem die Anwendung erfolgreich gestartet wurde, kann sie mithilfe der Befehlszeilenparameter den URI abrufen, mit dem sie gestartet wurde. Die übliche Methode ist, ein bekanntes Skript aufzurufen, das sein Argument verarbeitet und das erforderliche Programm startet.
Hier ist ein Tutorial für Windows, Linux und Mac viel zu umfangreich, aber hier sind einige nützliche Hinweise:
- Registrieren einer Anwendung für ein URI-Schema - für Windows
- So starten Sie externe Anwendungen mit benutzerdefinierten Protokollen - für Windows und Linux
- Starten externer Anwendungen mit benutzerdefinierten Protokollen unter OSX
Zur Beantwortung der Anfrage durch das Poster ist unten ein Linux-KDE-Skript angegeben, das /path/prog
als Protokoll für das Protokoll festgelegt wird xyz://
. Es erstellt für KDE die Datei $KDEDIR/share/services/xyz.protocol
und füllt sie aus. Die Gnome-Einstellungen werden ebenfalls festgelegt (sofern möglich), da einige Anwendungen sie auch dann verwenden, wenn sie unter KDE ausgeführt werden. Das Skript wurde von Github angepasst .
#!/usr/bin/env bash # # This script attempts to register a protocol handler for # links that look like sgaction://blah. # # It should be sufficient for gnome apps like pidgin and kde apps # like konqueror. Firefox seems to pay attention to the gnome # settings at least to the degree that it recognizes links of the # form $protocol://blah as hot-links, but it may still ask you to # select the application the first time you click on one. protocol=xyz handler="/path/prog" echo "Installing $protocol protocol handler for Gnome." gconfTool="$(which gconftool-2)" if [[ "$gconfTool" ]]; then gconftool-2 --set --type=string /desktop/gnome/url-handlers/$protocol/command "$handler \"%s\"" gconftool-2 --set --type=bool /desktop/gnome/url-handlers/$protocol/enabled true gconftool-2 --set --type=bool /desktop/gnome/url-handlers/$protocol/need-terminal false else echo "WARNING: gconftool-2 not found: skipping gnome url-handler registration." fi echo "Installing $protocol protocol handler for KDE." kdeProtoDir=~/.kde/share/services if [[ "$KDEDIR" ]]; then kdeProtoDir="$KDEDIR/share/services" fi if [[ ! -e "$kdeProtoDir" ]]; then mkdir -p "$kdeProtoDir" fi if [[ -e "$kdeProtoDir" ]]; then kdeProtoFile="$kdeProtoDir/$protocol.protocol" rm -f $kdeProtoFile cat > $kdeProtoFile << EOF [Protocol] exec=$handler "%u" protocol=$protocol input=none output=none helper=true listing=false reading=false writing=false makedir=false deleting=false EOF else echo "WARNING: can't find or create KDE protocol directory: $kdeProtoDir: skipping KDE url-handler registration." fi echo "Done."