Получить поисковый контент
В SDK добавлена поддержка получения пользовательского интерфейса поиска контента. Search Content — это общий термин, обозначающий несколько типов функций контента; в следующих разделах описано, как запросить каждый тип функции контента соответственно.
Поиск Повтор
Вызовите метод getSearchContent объекта ContextualSearchRuntime . Этот метод принимает один GetSearchContentOptions , в котором можно указать текст, для которого будет получено содержимое поиска. Чтобы получить текст повтора поиска, передайте текст повтора поиска в экземпляр GetSearchContentOptions .
Возвращаемый объект SearchContents не содержит доступных свойств. Он содержит всю необходимую информацию для отображения содержимого поиска, но в остальном является непрозрачным.
SwiftUI
Task {
let sampleSearchRepeat = "search repeat text"
let options = GetSearchContentOptions(searchRepeat: sampleSearchRepeat)
let searchContents: SearchContents =
try await contextualSearchRuntime.getSearchContent(withOptions: options)
}
Objective-C
GetSearchContentOptions *options =
[[GetSearchContentOptions alloc] initWithSearchRepeat:@"sample search repeat"];
[_contextualSearchRuntime getSearchContentWithOptions:options
completionHandler:^(SearchContents *_Nullable contents,
NSError *_Nullable error) {
// error will be not null if there is an error.
// On success, contents will be non null.
}];
Отображать содержимое результатов поиска
Для отображения результатов поиска используйте следующие методы.
SwiftUI
var customizationOptions = SearchContentViewOptions()
...
VStack {
ForEach(searchContents.searchContentBlocks) { block in
SearchContentView(blockData: block, options: customizationOptions)
}
}
Objective-C
for (SearchContentBlockData *block in ((SearchContents *)_searchContents)
.searchContentBlocks) {
SearchContentViewController *blockView = [[SearchContentViewController alloc]
initWithOptions:[[SearchSuggestionsViewOptions alloc] init]];
blockView.blockData = block;
[_searchContentStackView addSubview:blockView.view];
[blockView addToViewController:self];
}