Swift AppIntentsを使用して、アプリにショートカットを作成、その3
その3:アプリに処理指示、アプリ起動、パラメータあり
AlbumShuffleIntents.swift
import Foundation
import AppIntents
import SwiftUI
struct AlbumShuffleIntentAppRun: AppIntent {
static var title: LocalizedStringResource = "Album Shuffle App Run"
static var description = IntentDescription("Execute 'Shuffle' or 'Shuffle & Play'.")
static var openAppWhenRun: Bool = true
@Parameter(title: "Shuffle Type")
var shuffleType: AlbumShuffleType
@MainActor
func perform() async throws -> some IntentResult {
if shuffleType == .shuffle {
Music.shared.autoRun = true
}
Music.shared.selection = 1
Music.shared.albumShuffle()
if shuffleType == .shuffleandplay {
Music.shared.play()
}
return .result()
}
static var parameterSummary: some ParameterSummary {
Summary("Shuffle type \(\.$shuffleType)")
}
}
enum AlbumShuffleType: String, AppEnum {
case shuffle
case shuffleandplay
static var typeDisplayRepresentation: TypeDisplayRepresentation = "Shuffle Type"
static var caseDisplayRepresentations: [AlbumShuffleType: DisplayRepresentation] = [
.shuffle: "Shuffle",
.shuffleandplay: "Shuffle & Play",
]
}
struct AlbumShuffleAppRunShortcuts: AppShortcutsProvider {
static var appShortcuts: [AppShortcut] {
AppShortcut(
intent: AlbumShuffleIntentAppRun(),
phrases: [
"\(.applicationName)",
]
)
}
static var shortcutTileColor: ShortcutTileColor = .blue
}







