2017-11-09 21 views
0

Apple Watchでデータをすばやく読み込むには?私たちはWCSessionDelegateしか使用できないので、UserDefaultsはwatchOS 2以降は動作しません。Apple Watch Kit起動時にデータを読み込み

は今、私はwcSession?.sendMessage(someThing, replyHandler: someFunc, errorHandler: otherFunc)呼び出すウォッチアプリケーション起動時に、その後、iPhoneアプリに私は

func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) 

にいくつかのデータを送り返すそして最後にfunc session(_ session: WCSession, didReceiveMessage message: [String : Any])で時計アプリでそれを受けるが、それは3秒のようになります。

起動時にデータを取得するにはどうすればよいでしょうか?

答えて

0

新しいメッセージを開始する代わりに、返信ハンドラ関数を使用してみることもできます。より速く動作するはずです。

時計から呼び出し、これを:

func sendRequest() { 
    if session.activationState == .activated && session.isReachable { 
     session.sendMessage(["Watch Message" : "Request"], replyHandler: { (reply) in 

      // Handle reply here 

     }, errorHandler: { (error) in 

      print("***** Error Did Occur: \(error) *****") 
     }) 
    } 
} 

ハンドルと電話に応答:

func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) { 

    if let messageFromWatch = message["Watch Message"] { 
     let messageData = messageFromWatch as! String 

     // Message From Watch to Activate Watch Connectivity Session 
     if messageData == "Request" { 
      replyHandler(["Response" : data]) 
     } 
    } 
} 
関連する問題