More Related Content Similar to Watch connectivity Similar to Watch connectivity (14) More from Motoki Narita (12) Watch connectivity22. WCSessionDelegate
• iPhone or Apple Watchから送信したデータをApple
Watch or iPhoneで受け取るデリゲートメソッド
• WCSessionオブジェクトの状態変わったことを確認
するためのデリゲートメソッド
• データ転送が終わったタイミングを知るためのデリ
ゲートメソッド
24. • paird
→ iPhoneとApple Watchがペアリングさ
れているか
• watchAppInstalled
→ そのアプリのWatch appがインストー
ルされているか
接続状態を知るための
WCSessionのプロパティ
26. • sessionWatchStateDidChange
→ paired, watchAppInstalled,
complicationEnabled, watchDirectoryURLなど
に変化があった際に呼ばれる
• sessionReachabilityDidChange
→ 対になるアプリのreachabilityに変化があった際
に呼ばれる
接続状態が変わったことを受け取る
WCSessionDelegateのデリゲートメソッド
33. Background Transfers
Application Context
• updateApplicationContext:error:メソッドを使用して
applicationContextを更新
• WCSessionオブジェクトのapplicationContextプロパティで
updateApplicationContext:error:で送ったデータの確認が可能
• updateApplicationContext:error:を呼ぶごとにデータが上書きされる
• session:didReceiveApplicationContextで対になるアプリからのデー
タを受け取る
34. Background Transfers
• 押さえておくべきこと
• Application Contextと異なり上書きされずキューイ
ングされる
• Dictionary([String:AnyObject])型のデータが格納可能
• session:didReceiveUserInfo:で対になるアプリから
のデータを受け取る
User Info Transfer
35. Background Transfers
User Info Transfer
• transferUserInfo:メソッドを使用してデータをキューイングする
• WCSessionオブジェクトのoutstandingUserInfoTransfersプロパティで
キューイングされているデータを確認することが可能
• WCSessionUserInfoTransferというオブジェクトで
outstandingUserInfoTransfersプロパティに保存されている
• session:didReceiveUserInfo:で対になるアプリからのデータを受け取る
• session:didFinishUserInfoTransfer:error:で転送完了、あるいはエラーが
発生した場合の処理
36. Background Transfers
• 押さえておくべきこと
• キューイングなどはUserInfoと基本的に同じ
• ファイルの転送が可能
• メタデータを付与することが可能([String:AnyObject])
• session:didReceiveFile:で対になるアプリからのデータを
受け取る
File Transfer
37. Background Transfers
File Transfer
• transferFile:メソッドを使用してファイルの送信が可能
• データ容量の大きいファイル(画像、ドキュメントなど)を転送したい場合に転送する
• WCSessionオブジェクトのoutstandingFileTransfersプロパティでキューイングされて
いるデータを確認することが可能
• WCSessionFileTransferというオブジェクトでoutstandingFileTransfersプロパティに保
存されている
• session:didReceiveFile:で対になるアプリからのデータを受け取る
• session:didFinishFileTransfer:error:で転送完了、あるいはエラーが発生した場合の処理
をする
49. Interactive Messaging
• 以下のメソッドを使用してデータを受け取る
• session:didReceiveMessage:
• session:didReceiveMessage:replyHandler:
• session:didReceiveMessageData:
• session:didReceiveMessageData:replyHandler:
replyHandlerを利用して通信結果などの情報を送信側に
返した方が良さそう