2016-05-06 10 views
1

オンラインのデータの大半が古くなっているので、賢い人が私を助けてくれることを願っています。 私は財務情報を表示するiPhoneアプリを持っています。 これをウォッチ・グランスの画面に表示したいと思います。watchOS2.2のGlanceデータの更新

Glance画面と電話アプリの両方が開いている場合、最新情報の辞書を送信するようにアプリに通知して、更新をライブで更新します。

Glance画面を使用して電話アプリに最新情報を問い合わせる方法を知りたいと思います。 電話アプリが閉鎖されるため、目を覚ましてから現在の情報を尋ねる必要があります。

私は迅速7とWatchOS 2.2を使用していますし、IOS 9.3

ここStackOverflowの上の情報の多くは、そう、もはや機能しwatchOS 1を意味しません。

私はあなたのソリューションを楽しみにしています。

答えて

0

WCSessionには、さまざまな種類のデータを送信するさまざまな方法があります。この実装は辞書を送信しています。

時計と電話機の両方にWCSessionを設定する必要があります。 AppDelegateをdidFinishLaunchingWithOptions:にして、私はそのinitメソッドでExtensionDelegateを使用します。 WCSessionを使用する場合は必ずimport WatchConnectivityにしてください。以下のようにAppDelegateをWCSessionDelegateとして使用します。時計に

// AppDelegate.swift 
class AppDelegate: UIResponder, UIApplicationDelegate, WCSessionDelegate { 

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

     // Setup session on phone 
     if WCSession.isSupported() { 
      let session = WCSession.defaultSession() 
      session.delegate = self 
      session.activateSession() 
     } 

     return true 
    } 

    // WCSessionDelegate method receiving message from watch and using callback 
    func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) { 

     // Reply with a dictionary of information based on the "message" 
     replyHandler(["Key": "Value"]) 
    } 
} 

セットアップWCSession

// ExtensionDelegate.swift 
override init() { 
    let session = WCSession.defaultSession() 
    session.activateSession() 
} 

送信メッセージ、コールバックで情報を受信するために電話に、辞書から成る:

// GlanceController.swift 
WCSession.defaultSession().sendMessage(["Please give Glance data": "Value"], replyHandler:{ (response) in 
    // Extract data from response dictionary 
}) { (error) in 
    // Handle error 
}