proveedores de búsqueda web de Windows Search

Windows Search usa actualmente la búsqueda web desde Microsoft Bing aplicación para devolver contenido web y resultados de búsqueda. En el Espacio Económico Europeo (EEE), puede instalar aplicaciones que implementen un proveedor de búsqueda web para devolver contenido web y resultados de búsqueda en Windows Search.

Captura de pantalla de la interfaz de búsqueda de usuario de Windows con integración del proveedor de búsqueda de terceros.

Los proveedores de búsqueda se integran con la experiencia de búsqueda mediante la creación de un paquete MSIX con un archivo de manifiesto de paquete que proporciona la información necesaria para que el sistema operativo registre el proveedor de búsqueda. Después de la instalación, el proveedor de búsqueda está habilitado de forma predeterminada en Windows experiencias de búsqueda. En Windows Configuración, los usuarios pueden habilitar y deshabilitar proveedores de búsqueda instalados y administrar el orden de los proveedores en los resultados de búsqueda. Los usuarios pueden quitar un proveedor de búsqueda a través de la página Settings > Apps > Aplicaciones instaladas en configuración de Windows.

En el caso del desarrollo y las pruebas, cuando el modo de desarrollador está habilitado y la aplicación del proveedor de búsqueda se ha descargado localmente en el dispositivo, aparecerá en la lista de proveedores de búsqueda disponibles. Para obtener más información, consulte Configuración para desarrolladores.

Una vez registrado el proveedor de búsqueda con el sistema operativo, las consultas de usuario se pasan al punto de conexión HTTP especificado por el proveedor en su manifiesto de paquete mediante una cadena de consulta estandarizada. El punto de conexión devuelve resultados sugeridos en un documento JSON. Con cada dirección URL sugerida en el documento de respuesta, el proveedor de búsqueda incluye la dirección URL del punto de conexión de vista previa, que devuelve un documento HTML que se muestra en el panel de vista previa en la interfaz de usuario de los resultados de búsqueda.

En este artículo se proporcionan instrucciones para crear un paquete de aplicación del proveedor de búsqueda y detalles sobre los protocolos para implementar puntos de conexión HTTP del proveedor de búsqueda.

Creación de un paquete de aplicación de extensibilidad de búsqueda

Los proveedores de búsqueda se registran en el sistema operativo proporcionando un paquete MSIX que contiene información necesaria sobre el proveedor, como el nombre del proveedor de búsqueda y los puntos de conexión HTTP para sugerencias y vistas previas.

Extensión de aplicación del proveedor de búsqueda

El archivo de manifiesto del paquete de aplicación admite muchas extensiones y características diferentes para Windows aplicaciones. El formato del manifiesto de paquete de la aplicación se define mediante un conjunto de esquemas que se documentan en la referencia del esquema del manifiesto del paquete. Los proveedores de búsqueda declaran su información de registro dentro de uap3:AppExtension. El atributo Name de la extensión debe establecerse en "com.microsoft.windows.websearchprovider".

Los proveedores de búsqueda deben incluir uap3:Properties como elemento secundario de uap3:AppExtension. El esquema de manifiesto del paquete no impone la estructura del elemento uap3:Properties, aparte de exigir que sea un XML bien formado. En el resto de esta sección se describe el formato XML que espera el sistema operativo para registrar correctamente un proveedor de búsqueda.

<uap3:Extension Category="windows.appExtension">
  <uap3:AppExtension Name="com.microsoft.windows.websearchprovider" DisplayName="SearchExampleApp" Id="ContosoSearchApp" PublicFolder="Public">
    <uap3:Properties>
    <!-- Search provider registration content goes here -->
    </uap3:Properties>
  </uap3:AppExtension>
</uap3:Extension>

Jerarquía de elementos

uap3:Propiedades

  Punto Final

  Protocolo

Punto final

Dirección URL del punto de conexión HTTPS al que el sistema operativo enviará solicitudes de consulta de búsqueda.

Protocolo

Esquema de protocolo que se usará al iniciar los resultados de búsqueda web proporcionados. Si una aplicación no registra el protocolo especificado en el sistema operativo, se iniciará el explorador predeterminado para los resultados de búsqueda. Para obtener más información sobre el registro de esquemas de protocolo, consulte uap:Protocol.

Ejemplo de archivo de manifiesto de paquete

A continuación se muestra un ejemplo appmanifest.xml archivo de manifiesto de paquete para registrar un proveedor de búsqueda de Windows.

<!-- appxmanifest.xml -->

  <uap3:Extension Category="windows.appExtension">
	  <uap3:AppExtension Name="com.microsoft.windows.websearchprovider" DisplayName="CustomSearch" Id="CustomSearchApp" PublicFolder="Public">
		  <uap3:Properties>
			  <Endpoint>https://customsearchendpoint</Endpoint>
			  <Protocol>customsearch</Protocol>
		  </uap3:Properties>
	  </uap3:AppExtension>
  </uap3:Extension>
  <uap:Extension Category="windows.protocol">
	  <uap:Protocol Name="customsearch"/>
  </uap:Extension>

Implementación de un punto de conexión de sugerencia del proveedor de búsqueda de Windows

Los proveedores de búsqueda deben exponer y registrar un punto de conexión HTTPS al que llama el sistema operativo cuando un usuario escribe en el cuadro de búsqueda de Windows. Este punto de conexión debe devolver una cadena con formato JSON que contenga las sugerencias de búsqueda para la consulta de usuario proporcionada. El contenido debe entregarse a través de HTTPS. La integración de búsqueda no admite contenido entregado a través de HTTP.

Formato de solicitud HTTPS sugerida

La solicitud HTTPS al punto de conexión de sugerencia usa el siguiente formato.

https://contoso.com?setlang=en-US&cc=US&qry=

Los parámetros de cadena de consulta pasados al punto final de sugerencia son los siguientes.

Parámetro Descripción
setlang Localización asociada a la consulta.
Cc Código de país asociado a la consulta.
qry Consulta proporcionada por el usuario. Si el parámetro no tiene ningún valor, es decir, aparece en la cadena de consulta como qry=, la consulta de usuario está vacía. Los proveedores de búsqueda todavía pueden proporcionar sugerencias y páginas de vista previa en respuesta a una consulta vacía. NOTA El sistema operativo no realiza ninguna sanación de las cadenas de consulta. Los proveedores de búsqueda pueden implementar su propia limpieza cuando se recibe la consulta.

Propuestas de encabezados de respuesta HTTPS

El proveedor de búsqueda debe incluir los siguientes encabezados en la respuesta del punto de conexión HTTPS de sugerencia.

  • Control-de-Acceso-Permitir-Origen: https://www.bing.com
  • Access-Control-Allow-Credentials: true
  • Access-Control-Allow-Methods: GET
  • Content-Type: application/json; charset=utf-8
  • Content-Length: [Debe ser la longitud exacta de la respuesta]

Formato JSON de respuesta de sugerencia

El punto de conexión HTTPS del proveedor de búsqueda para sugerencias debe devolver un documento JSON con el siguiente formato. Los nombres de clave deben coincidir exactamente con el formato.

Clave Descripción
Sugerencias Contiene una lista de objetos JSON con clave Attributes que representa las sugerencias asociadas a la consulta de usuario.
Atributos Contiene los atributos de una sugerencia.
URL Dirección URL de la sugerencia de búsqueda en el sitio web del proveedor.
consulta Consulta de usuario asociada a la sugerencia de búsqueda.
previewPaneUrl Dirección URL del punto de conexión de vista previa desde el que se puede recuperar una vista previa HTML de la sugerencia.
Mensaje de texto Descripción del texto de la sugerencia.
{"Suggestions": 
   [{"Attributes": 
     {"url":"https://www.contoso.com/search?q=projection+matrix","query":"projection matrix","previewPaneUrl":"http://www.contoso.com/preview"} ,"Text":"projection matrix"}, 
    {"Attributes": 
     {"url":"https://www.contoso.com/search?q=rotation+matrix","query":"rotation matrix","previewPaneUrl":"http://www.contoso.com/preview"} ,"Text":"rotation matrix"}
    ] 
} 

Implementar un punto de conexión preliminar del proveedor de búsqueda de Windows

Los proveedores de búsqueda devuelven la dirección URL de un punto de conexión HTTPS que proporciona una vista previa HTML de la página asociada a cada sugerencia en los resultados de búsqueda. La respuesta del endpoint de vista previa debe devolver el código HTML para una página en funcionamiento.

Vista previa del formato de solicitud HTTPS

La solicitud HTTPS al punto de conexión de versión preliminar usa el siguiente formato.

https://contoso.com?Darkschemeovr=1

Los parámetros de cadena de consulta pasados al punto final de sugerencia son los siguientes.

Parámetro Descripción
Darkschemeovr Indica si el sistema Windows tiene habilitado el tema oscuro. El valor es 1 si el tema oscuro está habilitado y 0 si el tema oscuro está deshabilitado.

Vista previa de encabezados de respuesta HTTPS

  • Control-de-Acceso-Permitir-Origen: https://www.bing.com
  • Access-Control-Allow-Credentials: true
  • Access-Control-Allow-Methods: GET
  • Content-Type: text/html; charset=utf-8
  • Content-Length: [Debe ser la longitud exacta del html de vista previa]

Solicitud OPTIONS y uso compartido de recursos entre orígenes (CORS)

El cliente de Windows Search envía una solicitud HTTP OPTIONS (cors preflight) antes de cada solicitud GET. Los proveedores de búsqueda deben admitir el método de solicitud OPTIONS y responder con HTTP 200 OK.