Mensajería nativa
Las extensiones se comunican con una aplicación nativa de Win32 instalada en el dispositivo de un usuario mediante las API de paso de mensajes. El host de la aplicación nativa envía y recibe mensajes con extensiones mediante la entrada estándar y la salida estándar. Las extensiones que usan mensajería nativa se instalan en Microsoft Edge de forma similar a cualquier otra extensión. Sin embargo, Microsoft Edge no instala ni administra las aplicaciones nativas.
Para adquirir la extensión y el host de la aplicación nativa, tiene dos modelos de distribución.
- Empaquetar la extensión y el host juntos. Cuando un usuario instala el paquete, se instalan tanto la extensión como el host.
- Instale la extensión con el almacén de complementos de [Microsoft Edge] MicrosoftMicrosoftedgeAddonsMicrosoftEdgeExtensionsHomey la extensión pedirá a los usuarios que instalen el host.
Para crear la extensión para enviar y recibir mensajes con hosts de aplicaciones nativas, consulte los pasos siguientes.
Paso 1: Agregar permisos al manifiesto de extensión
Agregue el nativeMessaging
permiso al archivomanifest.js** archivo** de la extensión. El siguiente fragmento de código es un ejemplo demanifest.js** en**.
{
"name": "Native Messaging Example",
"version": "1.0",
"manifest_version": 2,
"description": "Send a message to a native application.",
"app": {
"launch": {
"local_path": "main.html" }
},
"icons": {
"128": "icon-128.png"},
"permissions": ["nativeMessaging"]
}
Paso 2: Crear el archivo de manifiesto del host de mensajería nativo
Las aplicaciones nativas deben proporcionar un archivo de manifiesto de host de mensajería nativo. El archivo de manifiesto contiene la siguiente información.
- La ruta de acceso al tiempo de ejecución del host de mensajería nativo.
- El método de comunicación con la extensión.
- Una lista de extensiones permitidas a las que se comunica.
El explorador lee y valida el manifiesto del host de mensajería nativa. El explorador no instala ni administra el archivo de manifiesto del host de mensajería nativa.
{
"name": "com.my_company.my_application",
"description": "My Application",
"path": "C:\\Program Files\\My Application\\chrome_native_messaging_host.exe",
"type": "stdio",
"allowed_origins": [
"chrome-extension://knldjmfmopnpolahpmmgbagdohdnhkik/"
]
}
El archivo de manifiesto de host debe ser un archivo JSON válido que contenga las siguientes claves.
name
Especifica el nombre del host de mensajería nativo. Los clientes pasan esta cadena a runtime.connectNative
o runtime.sendNativeMessage
.
- Este valor solo debe contener caracteres alfanuméricos en minúsculas, caracteres de subrayado y puntos.
- Este valor no debe comenzar ni terminar con un punto, y un punto no debe ir seguido de otro punto.
description
Describe la aplicación.
path
Especifica la ruta de acceso al binario del host de mensajería nativo.
- En dispositivos Windows, puedes usar rutas de acceso relativas al directorio que contiene el archivo de manifiesto.
- En macOS y Linux, la ruta de acceso debe ser absoluta.
El proceso de host comienza con el directorio actual establecido en el directorio que contiene el binario de host. Por ejemplo (Windows), si este parámetro se establece en , el binario se inicia con C:\Application\nm_host.exe
el directorio actual ( C:\Application\
).
type
Especifica el tipo de interfaz que se usa para comunicarse con el host de mensajería nativo. Este valor indica a Microsoft Edge que use stdin
y se comunique con el stdout
host.
El único valor aceptable es stdio
.
allowed_origins
Especifica la lista de extensiones que tienen acceso al host de mensajería nativo. Para permitir que la aplicación identifique y se comunique con una extensión, en el archivo de manifiesto del host de mensajería nativo, establezca el siguiente valor.
"allowed_origins": ["chrome-extension://{microsoft_catalog_extension_id}"]
Realizar una instalación de prueba de la extensión para probar la mensajería nativa con el host.
Para realizar una instalación de instalación de instalación local de la extensión durante el desarrollo y microsoft_catalog_extension_id
recuperarla, siga estos pasos.
- Navegue hasta
edge://extensions
y, a continuación, active el botón de alternancia del modo de desarrollador. - Elija Cargar desempaquetary, a continuación, seleccione el paquete de extensión para la instalación de prueba.
- Elige Aceptar.
- Vaya a
edge://extensions
la página y compruebe que la extensión aparece en la lista. - Copia la clave
microsoft_catalog_extension_id
de (ID) de la lista de extensiones de la página.
Cuando estés listo para distribuir la extensión a los usuarios, publica la extensión en la tienda de complementos de Microsoft Edge. El identificador de extensión de la extensión publicada puede ser diferente del identificador usado al cargar localmente la extensión. Si el identificador ha cambiado, actualice allowed_origins
el archivo de manifiesto de host con el identificador de la extensión publicada.
Paso 3: Copiar el archivo de manifiesto del host de mensajería nativa en el sistema
El paso final implica copiar el archivo de manifiesto del host de mensajería nativa en el equipo y asegurarse de que el archivo de manifiesto está configurado correctamente. Para asegurarse de que el archivo de manifiesto se coloca en la ubicación esperada, siga estos pasos. La ubicación varía según la plataforma.
El archivo de manifiesto puede estar ubicado en cualquier parte del sistema de archivos. El instalador de la aplicación debe crear una clave del Registro y establecer el valor predeterminado de esa clave en la ruta de acceso completa del archivo de manifiesto. Los siguientes comandos son ejemplos de claves del Registro.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Edge\NativeMessagingHosts\com.my_company.my_application
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Edge\NativeMessagingHosts\com.my_company.my_application
Para agregar una clave del Registro al directorio con la clave de manifiesto.
Ejecute el comando en el símbolo del sistema.
Ejecute el siguiente comando.
REG ADD "HKCU\Software\Microsoft\Edge\NativeMessagingHosts\com.my_company.my_application" /ve /t REG_SZ /d "C:\path\to\nmh-manifest.json" /f
Cree un
.reg
archivo y ejecutarlo.Copie el siguiente comando en un
.reg
archivo.Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Edge\NativeMessagingHosts\com.my_company.my_application] @="C:\\path\\to\\nmh-manifest.json"
Ejecute el
.reg
archivo.
Microsoft Edge consulta la HKEY_CURRENT_USER
clave raíz seguida de HKEY_LOCAL_MACHINE
. En ambas claves, primero se busca en el Registro de 32 bits y, a continuación, se busca en el Registro de 64 bits para identificar hosts de mensajería nativos. La clave del Registro especifica la ubicación del manifiesto del host de mensajería nativo. Si Microsoft Edge encuentra la clave del Registro en cualquiera de las ubicaciones enumeradas anteriormente, no consulta las ubicaciones que aparecen en este párrafo. Si ejecuta el archivo anterior como parte de un script por lotes, asegúrese de .reg
ejecutarlo mediante un símbolo del sistema de administrador.
Nota
Asegúrese de proporcionar permisos de lectura en el archivo de manifiesto y de ejecutar permisos en el tiempo de ejecución del host.
Nota
Algunas partes de esta página son modificaciones basadas en el trabajo creado y compartido por Google y se usan según los términos descritos en la Licencia internacional de Creative Commons Attribution 4.0.
La página original se encuentra aquí.
Este trabajo dispone de licencia conforme a Licencia internacional de Creative Commons Attribution 4.0.