поставщики веб-поиска Windows Search

Windows Поиск в настоящее время использует веб-поиск из приложения Microsoft Bing для возврата веб-содержимого и результатов поиска. В Европейской экономической зоне (EEA) можно установить приложения, реализующие поставщика веб-поиска для возврата веб-содержимого и результатов поиска в Windows Search.

Результаты поиска Windows с настраиваемыми значками предложений и значками лупы по умолчанию от двух поставщиков веб-поиска.

Поставщики поиска интегрируются с системой поиска, создавая пакет MSIX с файлом манифеста пакета, который предоставляет необходимые сведения для регистрации поставщика поиска операционной системой. После установки поставщик поиска включен по умолчанию в Windows интерфейсах поиска. В Windows параметрах пользователи могут включать и отключать установленные поставщики поиска и управлять порядком поставщиков в результатах поиска. Пользователи могут удалить поставщик поиска с помощью страницы Settings Apps < >c1 /> Установленные приложения в разделе "Параметры Windows".

Для разработки и тестирования, если режим разработчика включен и приложение поставщика поиска было загружено на устройстве, оно появится в списке доступных поставщиков поиска. Дополнительные сведения см. в разделе "Параметры" для разработчиков.

После регистрации поставщика поиска в ОС запросы пользователей передаются в конечную точку HTTP, указанную поставщиком в манифесте пакета, используя стандартизованную строку запроса. Конечная точка возвращает предлагаемые результаты в документе JSON. С каждым предлагаемым URL-адресом в документе ответа поставщик поиска включает URL-адрес конечной точки предварительного просмотра, который возвращает HTML-документ, отображаемый в области предварительного просмотра в пользовательском интерфейсе результатов поиска.

В этой статье приводятся рекомендации по созданию пакета приложения поставщика поиска и сведения о протоколах для реализации конечных точек HTTP поставщика поиска.

Создание пакета приложения расширения поиска

Поставщики поиска регистрируются в ОС, предоставляя пакет MSIX, содержащий необходимые сведения о поставщике, например имя поставщика поиска и конечные точки HTTP для предложений и предварительных версий.

Расширение приложения поставщика поиска

Файл манифеста пакета приложения поддерживает множество различных расширений и функций для Windows приложений. Формат манифеста пакета приложения определяется набором схем, которые описаны в справочнике по схемам манифеста пакета. Поставщики поиска объявляют свои сведения о регистрации в uap3:AppExtension. Атрибут Name расширения должен иметь значение com.microsoft.windows.websearchprovider.

Поставщики поиска должны включать uap3:Properties в качестве дочернего элемента uap3:AppExtension. Схема манифеста пакета не требует определённой структуры элемента uap3:Properties, кроме как необходимости в хорошо сформированном XML. В остальной части этого раздела описывается формат XML, который ос ожидает для успешной регистрации поставщика поиска.

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

Иерархия элементов

uap3:Свойства

  Конечная точка

  Протокол

Конечная точка

URL-адрес конечной точки HTTPS, в которую ОС отправляет запросы поиска.

Протокол

Схема протокола, которая будет использоваться при запуске предоставленных результатов поиска в Интернете. Если указанный протокол не зарегистрирован приложением в ОС, браузер по умолчанию будет запущен для результатов поиска. Дополнительные сведения о регистрации схем протокола см. в разделе uap:Protocol.

Пример файла манифеста пакета

Ниже приведен пример файла манифеста пакета appmanifest.xml для регистрации поставщика поиска 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>

Реализовать конечную точку подсказок провайдера поиска Windows

Поставщики поисковых систем должны предоставлять и регистрировать конечную точку HTTPS, которую вызывает ОС, когда пользователь вводит в поле поиска Windows. Эта конечная точка должна возвращать строку в формате JSON, содержащую предложения поиска для предоставленного пользовательского запроса. Содержимое должно быть доставлено по протоколу HTTPS. Интеграция поиска не поддерживает содержимое, доставленное по протоколу HTTP.

Формат HTTPS-запроса по рекомендации

HTTPS-запрос к конечной точке предложения использует следующий формат.

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

Параметры строки запроса, передаваемые конечной точке предложения, приведены ниже.

Параметр Описание
setlang Локаль, ассоциированная с запросом.
копия Код страны, связанный с запросом.
qry Запрос, предоставленный пользователем. Если параметр не имеет значения, т. е. отображается в строке запроса как qry=, то запрос пользователя пуст. Поставщики поиска по-прежнему могут предоставлять предложения и страницы предварительного просмотра в ответ на пустой запрос. ЗАМЕТКА ОС не выполняет очистку строк запроса. Поставщики поиска могут реализовать собственную очистку при получении запроса.

Предложения заголовков ответов HTTPS

Поставщик поиска должен включать следующие заголовки в ответе из конечной точки запроса предложений HTTPS.

  • Access-Control-Allow-Origin: https://www.bing.com
  • Access-Control-Allow-Credentials: true
  • Access-Control-Allow-Methods: GET (метод получения данных)
  • Content-Type: application/json; charset=utf-8
  • Длина содержимого: [должна быть точной длиной ответа]

Формат ответа предложения JSON

Конечная точка HTTPS поставщика поиска для предложений должна возвращать документ JSON со следующим форматом. Имена ключей должны точно соответствовать формату.

Ключ Описание
Предложения Содержит список объектов JSON с ключом Attributes , представляющим предложения, связанные с запросом пользователя.
Атрибуты Содержит атрибуты предложения.
URL-адрес URL-адрес предложения поиска на веб-сайте поставщика.
запрос Запрос пользователя, связанный с предложением поиска.
URL окна предварительного просмотра URL-адрес конечной точки предварительной версии, из которой можно получить HTML-предварительную версию предложения.
secondaryIconUrl Optional. URL-адрес изображения, отображаемого вместо стандартного значка лупы для подсказки. Если этот ключ отсутствует, отображается значок лупы по умолчанию. Для лучшего качества отображения изображение должно быть квадратным. Обрезка изображений, которые не являются квадратными, не гарантируется.
Текст Текстовое описание предложения.
{
  "Suggestions": [
    {
      "Attributes": {
        "url": "https://www.contoso.com/search?q=projection+matrix",
        "query": "projection matrix",
        "previewPaneUrl": "https://www.contoso.com/preview",
        "secondaryIconUrl": "https://www.contoso.com/icon.png"
      },
      "Text": "projection matrix"
    },
    {
      "Attributes": {
        "url": "https://www.contoso.com/search?q=rotation+matrix",
        "query": "rotation matrix",
        "previewPaneUrl": "https://www.contoso.com/preview"
      },
      "Text": "rotation matrix"
    }
  ]
}

Реализовать предварительный эндпоинт поставщика поиска Windows

Поставщики поиска возвращают URL-адрес конечной точки HTTPS, которая предоставляет html-предварительный просмотр страницы, связанной с каждым предложением в результатах поиска. Ответ конечной точки предварительной версии должен возвращать HTML-код для работающей страницы.

Предварительный просмотр формата запроса HTTPS

HTTPS-запрос к конечной точке предварительной версии использует следующий формат.

https://contoso.com?Darkschemeovr=1

Параметры строки запроса, передаваемые конечной точке предложения, приведены ниже.

Параметр Описание
Darkschemeovr Указывает, включена ли в вызывающей системе Windows темная тема. Значение равно 1, если темная тема включена и 0, если темная тема отключена.

Предварительный просмотр заголовков ответов HTTPS

  • Access-Control-Allow-Origin: https://www.bing.com
  • Access-Control-Allow-Credentials: true
  • Access-Control-Allow-Methods: GET (метод получения данных)
  • Content-Type: text/html; charset=utf-8
  • Длина содержимого: [должна точно соответствовать длине HTML предварительного просмотра]

Запрос OPTIONS и политика совместного использования ресурсов между источниками (CORS)

Клиент поиска Windows отправляет HTTP-запрос OPTIONS (предварительный CORS-запрос) перед каждым GET-запросом. Поставщики поиска должны поддерживать метод запроса OPTIONS и отвечать на запрос HTTP 200 OK.