tester tag plugin manager google extensiones extension chrome google-chrome-extension custom-protocol

google-chrome-extension - plugin - tag analysis



Controlador de protocolo personalizado en cromo (4)

¿Cómo configuro un controlador de protocolo personalizado en Chrome? Algo como:

myprotocol: // archivo de prueba

Necesitaría esto para enviar una solicitud a http://example.com?query=testfile , y luego enviar la httpresponse a mi extensión.


Así es como lo hice. Su aplicación necesitaría instalar unas pocas claves de registro en la instalación, luego, en cualquier navegador, puede simplemente vincularlo a foo: / anythingHere.txt y abrirá su aplicación y le pasará ese valor.

Este no es mi código, solo algo que encontré en la web al buscar la misma pregunta. Simplemente cambie todo "foo" en el texto a continuación al nombre de protocolo que desee y cambie también la ruta a su exe.

(ponga esto en un archivo de texto como guardar como foo.reg en su escritorio, luego haga doble clic para instalar las teclas) ----- Debajo de esta línea entra el archivo .reg (NO incluye esta línea) --- ---

REGEDIT4 [HKEY_CLASSES_ROOT/foo] @="URL:foo Protocol" "URL Protocol"="" [HKEY_CLASSES_ROOT/foo/shell] [HKEY_CLASSES_ROOT/foo/shell/open] [HKEY_CLASSES_ROOT/foo/shell/open/command] @="/"C://Program Files (x86)//Notepad++//notepad++.exe/" /"%1/""


El siguiente método registra una aplicación en un Esquema de URI. Por lo tanto, puede usar mycustproto: en su código HTML para activar una aplicación local. Funciona en una versión de Google Chrome 51.0.2704.79 m (64 bits).

Utilicé principalmente este método para imprimir documentos en silencio sin que apareciera el cuadro de diálogo de impresión. El resultado es bastante bueno y es una solución perfecta para integrar la aplicación externa con el navegador.

Código HTML (simple):

<a href="mycustproto:Hello World">Click Me</a>

Código HTML (alternativo):

<input id="DealerName" /> <button id="PrintBtn"></button> $(''#PrintBtn'').on(''click'', function(event){ event.preventDefault(); window.location.href = ''mycustproto:dealer '' + $(''#DealerName'').val(); });

El esquema URI se verá así:

Puede crear el Esquema de URI manualmente en el registro, o ejecutar el archivo "mycustproto.reg" (ver a continuación).

HKEY_CURRENT_USER/Software/Classes mycustproto (Default) = "URL:MyCustProto Protocol" URL Protocol = "" DefaultIcon (Default) = "myprogram.exe,1" shell open command (Default) = "C:/Program Files/MyProgram/myprogram.exe" "%1"

Ejemplo de mycustproto.reg:

Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER/Software/Classes/mycustproto] "URL Protocol"="/"/"" @="/"URL:MyCustProto Protocol/"" [HKEY_CURRENT_USER/Software/Classes/mycustproto/DefaultIcon] @="/"mycustproto.exe,1/"" [HKEY_CURRENT_USER/Software/Classes/mycustproto/shell] [HKEY_CURRENT_USER/Software/Classes/mycustproto/shell/open] [HKEY_CURRENT_USER/Software/Classes/mycustproto/shell/open/command] @="/"C://Program Files//MyProgram//myprogram.exe/" /"%1/""

Aplicación de consola C # - myprogram.exe:

using System; using System.Collections.Generic; using System.Text; namespace myprogram { class Program { static string ProcessInput(string s) { // TODO Verify and validate the input // string as appropriate for your application. return s; } static void Main(string[] args) { Console.WriteLine("Raw command-line: /n/t" + Environment.CommandLine); Console.WriteLine("/n/nArguments:/n"); foreach (string s in args) { Console.WriteLine("/t" + ProcessInput(s)); } Console.WriteLine("/nPress any key to continue..."); Console.ReadKey(); } } }

Intente ejecutar el programa primero para asegurarse de que el programa se haya colocado en la ruta correcta:

cmd> "C:/Program Files/MyProgram/myprogram.exe" "mycustproto:Hello World"

Haga clic en el enlace en su página HTML:

Verá una ventana emergente de advertencia por primera vez.

Para restablecer la configuración del controlador de protocolo externo en Chrome:

Si alguna vez ha aceptado el protocolo personalizado en Chrome y desea restablecer la configuración, haga esto (actualmente, no hay interfaz de usuario en Chrome para cambiar la configuración):

Edite " Estado local " este archivo en esta ruta:

C:/Users/Username/AppData/Local/Google/Chrome/User Data/

o simplemente vaya a:

%USERPROFILE%/AppData/Local/Google/Chrome/User Data/

Luego, busca esta cadena: protocol_handler

Verá el protocolo personalizado desde allí.

Nota: cierre su Google Chrome antes de editar el archivo. De lo contrario, el cambio que ha realizado será sobrescrito por Chrome.

Referencia:

https://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx


Esta pregunta es antigua ahora, pero ha habido una actualización reciente de Chrome (al menos en lo que respecta a las aplicaciones empaquetadas) ...

http://developer.chrome.com/apps/manifest/url_handlers

y

https://github.com/GoogleChrome/chrome-app-samples/tree/master/samples/url-handler

Le permite registrar un manejador para una URL (siempre que lo tenga). Lamentablemente, no hay un myprotocol:// pero al menos puedes hacerlo http://myprotocol.mysite.com y puedes crear una página web que myprotocol:// a las personas a la aplicación en la tienda de aplicaciones.


Chrome 13 ahora es compatible con la API navigator.registerProtocolHandler . Por ejemplo,

navigator.registerProtocolHandler( ''web+custom'', ''http://example.com/rph?q=%s'', ''My App'');

Tenga en cuenta que su nombre de protocolo debe comenzar con web+ , con algunas excepciones para los comunes (como mailto , etc.). Para obtener más información, consulte: http://updates.html5rocks.com/2011/06/Registering-a-custom-protocol-handler