I've integrated my app with Visual Intelligence (iOS 26) using the semanticContentSearch schema. Image results are populated via an IntentValueQuery returning my entities, and the "More results" button is backed by an intent declared as:
@available(iOS 26.0, *)
@AppIntent(schema: .visualIntelligence.semanticContentSearch)
struct ShowSearchResultsIntent {
static let title: LocalizedStringResource = "Search products by image"
static let openAppWhenRun: Bool = true
var semanticContent: SemanticContentDescriptor
func perform() async throws -> some IntentResult { /* deep-link into in-app search */ }
}
From WWDC25 (session 275) and WWDC26 (session 297) my understanding is that:
the "More results" button is provided automatically by the system once this schema intent is adopted;
returning an empty array from the value query lets the system show an empty response;
my app appears as a result tab alongside other adopting apps, and the system decides the ordering based on the available image search providers on the device.
I have a few questions about how much of this an app can control at runtime:
"More results" button
Is there any supported way to conditionally show or hide the system "More results" button at runtime (e.g., region, A/B test, server-driven feature flag)? Or is it strictly tied to the static presence of the semanticContentSearch intent?
If IntentValueQuery returns an empty array, does the "More results" button still appear?
Is there any API to suppress the button while keeping the schema intent declared?
App result tab ordering
How exactly does the system decide the order of the app result tabs? Is it based on relevance/similarity, app category, user behavior, or something else?
Is there anything a developer can do to influence where their tab appears, or is ordering entirely system-controlled?
App result tab presence / opt-out
Once the integration is implemented, my app's tab appears automatically. Is there a supported way to conditionally opt out of appearing as a result tab at runtime (e.g., based on region or a feature flag)?
Or is the only way to not appear to omit the integration at build time (or gate it by OS availability)?
Thanks!
0
0
78