我正在学习SiriKit,我遇到了一个大问题。我建立了一个应用程序,有时他工作,有时他不工作。我想打开一个特定的控制器,而不是说“开始苹果运动”或类似的东西。我用户锻炼,因为它是最简单的,我想知道我是否只能说“通过MyApp打开配置文件”。这可能吗?
这是我的代码:
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
guard let intent = userActivity.interaction?.intent as? INStartWorkoutIntent else {
print("AppDelegate: Start Workout Intent - FALSE")
return false
}
print("AppDelegate: Start Workout Intent - TRUE")
print("INTENT: ", intent)
self.window = UIWindow(frame: UIScreen.main.bounds)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
guard let spokenPhrase = intent.workoutName?.spokenPhrase else {
return false
}
switch spokenPhrase {
case "test":
let vc = storyboard.instantiateViewController(withIdentifier: "firstVC")
self.window?.rootViewController = vc
self.window?.makeKeyAndVisible()
case "apple":
let vc = storyboard.instantiateViewController(withIdentifier: "secondVC")
self.window?.rootViewController = vc
self.window?.makeKeyAndVisible()
default:
break
}
return true
}
答案 0 :(得分:2)
不,那是不可能的。 SiriKit
只能用于特定的场景。由于Siri
适用于自然语言处理,因此需要“收听”文本中的某些特定单词才能将这些单词解码为Swift
个对象。每个Intent
都有一些特定的关键字需要说明,否则Siri
将无法将用户输入识别为特定的Intent
。
即使你会“破解”你的应用程序做一些与锻炼无关的事情并使用锻炼意图从Siri
打开它,你的应用很可能会被AppStore
拒绝。