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.

  1. Navegue hasta edge://extensions y, a continuación, active el botón de alternancia del modo de desarrollador.
  2. Elija Cargar desempaquetary, a continuación, seleccione el paquete de extensión para la instalación de prueba.
  3. Elige Aceptar.
  4. Vaya a edge://extensions la página y compruebe que la extensión aparece en la lista.
  5. 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.

    1. 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.

    1. 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"
      
    2. 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í.

Licencia de Creative Commons
Este trabajo dispone de licencia conforme a Licencia internacional de Creative Commons Attribution 4.0.