I’m engaged on supporting iOS 17’s new Shortcuts options. I’ve a a number of App Shortcuts together with one which launches the app in a particular tab. The tab choice is finished through a customized AppView
enum that conforms to the AppEnum
protocol.
The issue is that for some motive the open in view XYZ motion doesn’t present accurately in Highlight. As you possibly can see within the screenshot under it doesn’t have any icon or title. Additionally within the Shortcuts app itself solely the Motion ensuing from the primary phrase exhibits up. The AppView
primarily based phrase actions solely present up as previous App Shortcuts under.
Any concept the way to repair that concern?
App Shortcuts Definition
struct AppShortcuts: AppShortcutsProvider {
static var shortcutTileColor: ShortcutTileColor = .grape
static var appShortcuts: [AppShortcut] {
AppShortcut(
intent: OpenAppIntent(),
phrases: [
"Open (.applicationName)",
"Open (.$view) in (.applicationName)"
],
shortTitle: "Open",
systemImageName: "arrow.up.ahead.app"
)
// Different App Shortcuts …
}
}
AppView
App Enum
extension AppView: AppEnum {
static var typeDisplayRepresentation = TypeDisplayRepresentation(title: "View")
static var caseDisplayRepresentations: [Self : DisplayRepresentation] = [
.insights: DisplayRepresentation(title: LocalizedStringResource("Insights", table: "Shortcuts", comment: "App View Label"),
image: .init(systemName: "chart.xyaxis.line")),
.events: DisplayRepresentation(title: LocalizedStringResource("Events", table: "Shortcuts", comment: "App View Label"),
image: .init(systemName: "calendar")),
.meters: DisplayRepresentation(title: LocalizedStringResource("Meters", table: "Shortcuts", comment: "App View Label"),
image: .init(systemName: "barometer"))
]
}
Shortcut Definition
struct OpenAppIntent: AppIntent {
// Launches app when motion is triggered
static let openAppWhenRun: Bool = true
// App View Parameter
@Parameter(title: "View",
description: "The view contained in the app.",
default: .insights,
requestValueDialog: IntentDialog("The place would you prefer to navigate to?"))
var view: AppView
// Title, Description, Parameter Abstract & carry out()
}