운동을 시작하려면 SiriKit을 사용하고 싶습니다. 운동을 시작하려면 앱 확장에서 기본 앱을 열어야합니다. 애플이 INStartWorkoutIntentHandling
핸들러 제공SiriKit의 INExtension에서 앱 시작
상용구는
func handle(startWorkout startWorkoutIntent: INStartWorkoutIntent, completion: (INStartWorkoutIntentResponse) -> Void) {
let userActivity = NSUserActivity(activityType: NSStringFromClass(INStartWorkoutIntent))
let response = INStartWorkoutIntentResponse(code: .success, userActivity: userActivity)
completion(response)
}
가 어떻게 여기에서 내 자신의 응용 프로그램을 열 수있다? 이 확장 유형에 extensionContext
속성이있는 UIViewController
이 없으므로 myapp://workout?action=start&name=pushups
This answer과 같은 것이 적합하지 않은 것으로 보입니다.
마지막 관련 비트 : 다른 작업 (일시 중지, 종료)의 경우 기본 앱을 열지 않고 메인 앱에서 실행중인 운동을 일시 중지하는 것이 좋습니다. 비슷한 사용자 정의 URL을 사용하여 일시 중지 할 수 있지만 추가 불필요한 단계 인 앱이 열립니다. 앱을 열지 않고 INExtension에서 특정 작업을 수행하도록 기본 앱에 알리는 좋은 방법은 무엇입니까?
Apple은 ['failureRequiringAppLaunch'] (https://developer.apple.com/reference/intents/instartworkoutintentresponsecode) 응답 코드를 정의했으며 이는 거의 Apple의 관점에서 볼 때 유스 케이스가 아님을 의미합니다. 앱 확장 프로그램에서 내 앱의 핵심 활용 사례를 다시 구현하도록 요구하는 것은 무리가 있다고 판단됩니다 (예 : 운동은 단순한 오디오 이상을 포함). 나는 사용자가 "Siri, 내 맞춤 어휘를 사용하여 MY-APP에서 10 분간의 상반신 운동을 시작하라"라고 말할 수있게하고 싶습니다. 그러면 앱에서 운동을 시작합니다. –