AI-generated Key Takeaways
-
The SDK now supports fetching and displaying search content UI, encompassing various content features like "search repeat".
-
You can retrieve search content using
getSearchContent
with specified options, like providing search repeat text. -
While the returned
SearchContents
object is opaque, it holds the data needed for rendering search content. -
SwiftUI and Objective-C code samples demonstrate how to obtain and display different search content blocks.
Get search content
We have added the support of getting search content UI in the SDK.
Search Content
is a general term representing multiple types of content
features, check following sections for how to request each type of content
feature respectively.
Search Repeat
Call the getSearchContent
method on the ContextualSearchRuntime
. This method
takes a single GetSearchContentOptions
where you can specify the text to use
to get search content for. To get search repeat, pass in the search repeat text
into the GetSearchContentOptions
instance.
The returned SearchContents
object does not contain any accessible properties.
It contains all of the necessary information to render search content, but
otherwise is opaque.
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.
}];
Display Search Content
To display search content, use the following methods.
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];
}