SearchSuggestionManager.SuggestionsRequested Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возникает, когда текст запроса пользователя изменяется и приложение должно предоставлять новые предложения для отображения в поле поиска.
// Register
event_token SuggestionsRequested(TypedEventHandler<SearchSuggestionManager, SearchSuggestionsRequestedEventArgs const&> const& handler) const;
// Revoke with event_token
void SuggestionsRequested(event_token const* cookie) const;
// Revoke with event_revoker
SearchSuggestionManager::SuggestionsRequested_revoker SuggestionsRequested(auto_revoke_t, TypedEventHandler<SearchSuggestionManager, SearchSuggestionsRequestedEventArgs const&> const& handler) const;
public event TypedEventHandler<SearchSuggestionManager,SearchSuggestionsRequestedEventArgs> SuggestionsRequested;
function onSuggestionsRequested(eventArgs) { /* Your code */ }
searchSuggestionManager.addEventListener("suggestionsrequested", onSuggestionsRequested);
searchSuggestionManager.removeEventListener("suggestionsrequested", onSuggestionsRequested);
- or -
searchSuggestionManager.onsuggestionsrequested = onSuggestionsRequested;
Public Custom Event SuggestionsRequested As TypedEventHandler(Of SearchSuggestionManager, SearchSuggestionsRequestedEventArgs)
Тип события
Комментарии
Предложения могут поступать из трех источников: журнала поиска, локальных файлов или источника, указанного приложением. Предложения группируются по их источнику и отображаются в следующем порядке в области поиска: журнал поиска, локальные файлы, а затем источники, указанные приложением.
Если приложение участвует в контракте поиска и вы хотите, чтобы приложение отображалось предложения из указанных источников, необходимо зарегистрировать обработчик, чтобы реагировать на событие. В обработчике событий SuggestionsRequested получите предложения и заполните SearchSuggestionCollection на основе queryText пользователя.
Примечание
Если вы хотите ответить на это событие асинхронно, необходимо получить отсрочку из свойства Request .
Предложения не могут быть предоставлены для пустого поля поиска, поэтому это событие не возникает, когда пользователь обновляет поле поиска, чтобы оно было пустым.
Типы предложений поиска
Существует два типа предложений, которые может отображать приложение: предложения, которые помогают пользователям уточнить запрос (предложения запросов), и предложения, которые являются фактическими результатами запроса (предложения результатов). Вы можете отобразить один или оба типа предложений.
Если вы предоставляете предложения запроса и пользователь выбирает один из них, ваше приложение должно ответить, отображая результаты выбранного уточненного запроса на странице результатов поиска вашего приложения.
Если вы предоставляете предложения результатов, необходимо также зарегистрировать обработчик событий ResultSuggestionChosen , чтобы можно было реагировать, когда пользователь выбирает одно из ваших предложений результатов, и вы можете отобразить результат для пользователя.
Получение предложений
Ниже приведено несколько примеров источников, которые приложение может использовать для получения предложений:
- Из определяемого приложением статического локального списка
- Из URL-адреса, поддерживающего предложения в формате OpenSearch
Отображение предложений, предоставленных приложением, в элементе управления "Поле поиска"
После получения предложений их можно отобразить в области поиска, добавив их в коллекцию SearchSuggestionзапроса.
Если вы решили отобразить предложения запросов и результаты, следует сгруппировать предложения по типу предложения (запрос или результат) и разделить группы с помощью AppendSearchSeparator. Каждый разделитель занимает место предложения и должен следовать по крайней мере одно предложение, уменьшая количество отображаемых предложений.