2016-09-21 81 views
0

在didFinishLaunchingWithOptions的AppDelegate中,我將 手錶連接到應用程序。Apple Watch Unpaired ActivateSession slow

if ([WCSession isSupported]) { 
    WCSession *session = [WCSession defaultSession]; 
    session.delegate = self; 
    [session activateSession]; 
} 

這對大多數情況下工作正常。然而,當用戶確實配對了手錶 並且他們取消配對手錶時,我們在 [會話activateSession]中遇到了延遲。這個 調用將需要大約7-8秒的時間來執行。這在App啓動中造成了巨大的延遲。

我懷疑這是Apple的一個漏洞,我不希望Apple在短時間內爲此做出修復。

由於我的解決方法,我正在尋找我想檢查手錶是否配對,在activateSession之前。但是「會話」不包含有效數據。如何在'session activateSession' 聲明之前檢查手錶是否配對?

這發生在iOS9.3和iOS10.0.1中,我還沒有測試過其他版本。

回答

1

這當然聽起來像一個錯誤。作爲一種變通方法,你既可以:

+0

中的iOS 9.3增加了對WCSession異步激活的

  • 乘虛而入,watchOS 2.2它強烈建議在AppDelegate中執行激活,因此第一種解決方法是不可能的。 – Vincent

  • +0

    第二種解決方法完美地起作用。只需包含方法會話:activationDidCompleteWithActivationState:error :(不需要內容)。謝謝! – Vincent