2017-08-05 95 views
0

我正在學習SiriKit,我有一個很大的問題。我建立了一個應用程序,有時他工作,有時他不工作。我想打開一個特定的控制器,而不用說「開始蘋果運動」或類似的東西。我用戶鍛鍊,因爲它是最簡單的,我想知道我是否只能說「通過MyApp打開個人資料」。那可能嗎?如何用Siri打開/觸發視圖控制器?

這裏是我的代碼:

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

不,那是不可能的。 SiriKit只能用於真正特定的場景。由於Siri與自然語言處理協同工作,因此它需要「聆聽」文本中的某些特定單詞,以便能夠將這些單詞解碼爲Swift對象。每個Intent都有一些需要說明的特定關鍵字,否則Siri將不會將用戶輸入識別爲特定的Intent

即使您會「破解」您的應用,使其完全無關鍛鍊,並使用鍛鍊意圖將其從Siri中打開,但您的應用很可能會被AppStore拒絕。

+0

謝謝你,我想我會用Speech Framework。 –

相關問題