הצגת הצעות לחיפוש
כדי לקבל הצעות לחיפוש, קוראים ל-method getSearchSuggestions
ב-ContextualSearchRuntime
. השיטה הזו משתמשת ב-GetSearchSuggestionsOptions יחיד, שבו אפשר לציין את הטקסט שישמש לקבלת הצעות לחיפוש.
האובייקט SearchSuggestions
שמוחזר לא מכיל מאפיינים נגישים. היא מכילה את כל המידע הנדרש להצגת הצעות החיפוש, אבל היא לא שקופה.
SWIFT משתמש בסגנון Swift Concurrency, Objective-C משתמש בפונקציית קריאה חוזרת.
Swift
getSearchSuggestions(withOptions:)
Task {
let suggestions = try await searchRuntime.getSearchSuggestions(
withOptions: GetSearchSuggestionsOptions(withTextContext:['Sample Query', 'Another query string']))
}
Objective-C
getSearchSuggestionsWithOptions
[searchRuntime
getSearchSuggestionsWithOptions:
[[GetSearchSuggestionsOptions alloc] initWithTextContext: @[@'Sample Query', @'Another query string' ]]
completionHandler:^(SearchSuggestions *_Nullable suggestions,
NSError *_Nullable error) {
// error will be not null if there is an error.
// On success, suggestions will be non null.
}];
קבלת הצעות לחיפוש שמבוססות על המיקום
הבקשה getSearchSuggestions
תומכת גם בהצעות לחיפוש שמבוססות על מיקום. יוצרים אובייקט GetSearchSuggestionsOptions
עם LocationSuggestionsContext.
כדי ליצור את הכיתה LocationSuggestionsContext
:
- (חובה) מגדירים את
latitude
,longitude
ו-radiusMeters
כך שיתואמו לאזור המבוקש. - (אופציונלי) מגדירים את
startTime
כך שיתאים לזמן המבוקש שבו הצעות החיפוש אמורות לחול. - (אופציונלי) מגדירים את הרשימה
geoTypes
עם סוגי המיקומים הגיאוגרפיים המבוקשים. הסוגים שצוינו משמשים להתאמה של הדירוג והסינון של התוצאות שהשירות מחזיר. הערכים הנתמכים מתועדים במאמר LocationSuggestionsContext.
Swift
getSearchSuggestions(withOptions:)
Task {
let locationContext: LocationSuggestionsContext = {
let context = LocationSuggestionsContext()
context.latitude = 40.748595
context.longitude = -73.992365
context.radiusMeters = 2500
context.startTime = try?
Date.ISO8601FormatStyle.iso8601.parse("2024-03-14T19:20:30.000+02:00")
context.geoTypes = ["restaurant", "cafe"]
return context
}()
let suggestions = try await searchRuntime.getSearchSuggestions(
withOptions: GetSearchSuggestionsOptions(locationContext: [
locationContext
]))
}
Objective-C
getSearchSuggestionsWithOptions
LocationSuggestionsContext *locationContext;
locationContext = [[LocationSuggestionsContext alloc] init];
locationContext.latitude = 40.748595;
locationContext.longitude = -73.992365;
locationContext.radiusMeters = @2500;
[searchRuntime
getSearchSuggestionsWithOptions:
[[GetSearchSuggestionsOptions alloc] initWithLocationContext: locationContext]
completionHandler:^(SearchSuggestions *_Nullable suggestions,
NSError *_Nullable error) {
// error will be not null if there is an error.
// On success, suggestions will be non null.
}];
רשת המדיה
כדי להציג צ'יפים של הצעות חיפוש, משתמשים בשיטות הבאות (הסגנון משתנה בהתאם לשימוש ב-UIKit או ב-SwiftUI).
Swift UIKit
הצגת צ'יפים של הצעות לחיפוש באמצעות SearchSuggestionsViewController.
// Create the SearchSuggestionsViewController with specified display options.
var searchSuggestionsController = SearchSuggestionsViewController(options: viewOptions)
...
// Add the view controller to the existing view hierarchy
searchSuggestionsController.addToViewContoller(self)
view.addSubview(searchSuggestionsController.view)
...
// Assign a specific set of search suggestions to this view controller.
searchSuggestionsController.searchSuggestions = suggestions
Objective-C
הצגת צ'יפים של הצעות לחיפוש באמצעות SearchSuggestionsViewController.
// Create the SearchSuggestionsController with specified display options.
SearchSuggestionsViewController *_searchSuggestionsController =
[[SearchSuggestionsViewController alloc] initWithOptions:_customizationOptions];
...
// Add the view controller to the existing view hierarchy
[_searchSuggestionsController addToViewController:self];
[self.view addSubview:_searchSuggestionsController.view];
...
// Assign a specific set of search suggestions to this view controller.
_searchSuggestionsController.searchSuggestions = suggestions
SwiftUI
אפשר להציג הצעות חיפוש באמצעות SearchSuggestionsView
SearchSuggestionsView(suggestions: suggestions, options: options)