Поставщики поиска Windows
Примечание.
Некоторые сведения относятся к предварительной версии продукта, в которую перед коммерческим выпуском могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Внимание
Функция, описанная в этом разделе, доступна в предварительных версиях сборок Windows, начиная с сборки 22631.2787 для Windows 11 и сборки 19045.3758 для Windows 10, хотя новые сборки рекомендуется, так как они содержат улучшения стабильности. Сведения о предварительных сборках Windows см. в статье Windows 10 Insider Preview.
В настоящее время Поиск Windows использует веб-поиск из приложения Microsoft Bing для возврата веб-содержимого и результатов поиска. В Европейской экономической зоне (EEA) можно включить установленные приложения, которые реализуют поставщик веб-поиска для возврата веб-содержимого и результатов поиска в Поиске Windows с помощью параметров.
Поставщики поиска интегрируются с интерфейсом поиска, создавая пакет MSIX с файлом манифеста пакета, который предоставляет необходимые сведения для регистрации поставщика поиска ос. Пользователи могут добавить поставщика поиска в Windows, установив связанный пакет приложения и удалив поставщик поиска с помощью страницы "Добавление или удаление программ " в приложении "Параметры 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:Properties
EndPoint
Протокол
Конечная точка
URL-адрес конечной точки HTTPS, в которую ОС отправляет запросы поиска.
Протокол
Схема протокола, которая будет использоваться при запуске предоставленных результатов поиска в Интернете. Если указанный протокол не зарегистрирован приложением в ОС, браузер по умолчанию будет запущен для результатов поиска. Дополнительные сведения о регистрации схем протокола см. в разделе uap:Protocol.
DynamicContentEndpoint
URL-адрес конечной точки HTTPS, в которую ОС отправляет запрос на отображение значка блеска в поле поиска. Дополнительные сведения см. в разделе "Реализация конечной точки значка блеска". Эта функция поддерживается начиная с сборки Windows 10 19045.4233 и Windows 11 сборки 22621.3371.
Пример файла манифеста пакета
Ниже приведен пример 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>
<DynamicContentEndpoint>https://sub.contoso.com/dynamic</DynamicContentEndpoint>
</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 | Языковой стандарт, связанный с запросом. |
cc | Код страны, связанный с запросом. |
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 со следующим форматом. Имена ключей должны точно соответствовать формату.
Ключ. | Description |
---|---|
Предложения | Содержит список объектов JSON с ключом Attributes , представляющим предложения, связанные с запросом пользователя. |
Атрибуты | Содержит атрибуты предложения. |
URL-адрес | URL-адрес предложения поиска на веб-сайте поставщика. |
query | Запрос пользователя, связанный с предложением поиска. |
previewPaneUrl | URL-адрес конечной точки предварительной версии, из которой можно получить HTML-предварительную версию предложения. |
Текст | Текстовое описание предложения. |
{"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"}
]
}
Реализация конечной точки предварительной версии поставщика поиска 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)
Поставщики поиска должны поддерживать метод запроса OPTIONS и отвечать на этот запрос с помощью HTTP OK. Если конечная точка поставщика поиска использует CORS, клиент поиска Windows отправит HTTP-запрос OPTIONS перед каждым запросом GET.
Реализация конечной точки значка блеска
Поставщики поиска могут при необходимости предоставлять светлые и темные значки блеска режима, отображаемые в строке поиска при включении поставщика поиска. Если элемент DynamicContentEndpoint указан в манифесте приложения, запрос будет отправлен на указанный URL-адрес, а поставщик поиска отвечает с json-файлом в формате, определенном ниже, который содержит URL-адреса файлов изображений значков и другие метаданные. Запрос значка блеска будет отправляться периодически, пока поставщик поиска является самым последним поставщиком, активным в Поиске Windows. Частота этого запроса составляет каждые 6 часов. Запрос также будет отправлен при каждом запуске поиска и разблокировке устройства.
Формат запроса HTTPS значка глама
HTTPS-запрос к конечной точке значка блеска использует следующий формат.
https://www.contoso.com/Gleam?cc=FR&setlang=en-us&dateTime=3%2F29%2F2024%2C%208%3A33%3A56%20PM&deviceOs=windows10&schemaversion=1.0.0
Параметры строки запроса, передаваемые конечной точке предложения, приведены ниже.
Параметр | Описание |
---|---|
setlang | Языковой стандарт, связанный с запросом. |
cc | Код страны, связанный с запросом. |
dateTime | Текущая дата и время от клиентского устройства, закодированная URL-адресом. |
устройства | ОС клиентского устройства. Значение этого параметра может быть "Windows10" или "Windows11". В Windows 10 размер значка блеска составляет 30x60. В Windows 11 размер значка блеска составляет 20x36 |
schemaversion | Версия схемы блеска. |
Формат JSON ответа значка глама
Конечная точка HTTPS поставщика поиска для значков блеска должна возвращать документ JSON со следующим форматом. Имена ключей должны точно соответствовать формату. Текущая версия схемы — 1.0.0.
Ключ. | Description |
---|---|
schemaVersion | Версия схемы блеска. Это должно соответствовать параметру строки запроса schemaVersion в запросе. |
telemetryId | Уникальный идентификатор значка блеска. Если значение в ответе совпадает со значением для текущего значка блеска, ОС не обновит значок. |
expirationTime; | Время окончания срока действия значка блеска. Должно быть время в будущем. |
content | Раздел содержимого ответа. |
taskbarSearchBox | Содержит параметры для поля поиска. |
проблеск | Содержит параметры значка блеска. |
altText | Альтернативный текст для значка блеска. |
dimensionEnum | Значение "30x60", если запрос был отправлен с устройства Windows 10. Значение "20x36", если запрос был отправлен с устройства Windows 11. |
iconUrl | Содержит URL-адреса для файлов изображений значков светлого и темного блеска. |
light | URL-адрес файла изображения значка светлого блеска. |
dark | URL-адрес файла изображения с темным значком блеска. |
{
"schemaVersion":"1.0.0",
"telemetryId":"<unique gleam Id>",
"expirationTime":"2025-12-09T20:37:13Z",
"content": {
"taskbarSearchBox": {
"gleam":{
"altText": "<alt text of the gleam>",
"dimensionEnum": "(30x60 for Windows 10, 20x36 for Windows 11)",
"iconUrl": {
"light":"<3p's light gleam url>",
"dark": "<3p's dark gleam url>"
}
}
}
}
}
Проверка ответа на значок глама
Ответ должен указать URL-адрес светлого ресурса и URL-адрес темного ресурса. Домены для URL-адресов изображения значков должны использовать HTTPS, а поддомен должен соответствовать поддомену, указанному в элементе DynamicContentEndpoint в файле манифеста приложения.
Файлы изображений должны находиться в формате SVG, а максимальный размер файла — 300 кб. Блеск должен находиться в рамке 240x120px внутри SVG.
Если получена пустая полезные данные, это приведет к очистке активного значка блеска и не будет отображаться блеск.
Связанные статьи
Windows developer