1

我希望你们聪明的人可以帮助我,因为大多数在线数据已经过时了。我有一个显示财务信息的 iPhone 应用程序。我想在手表浏览屏幕上展示这个。

我可以让应用程序发送最新信息的字典,如果 Glance 屏幕和电话应用程序都打开,则 Glance 会实时更新。

我想知道如何使用 Glance 屏幕向手机应用程序询问最新信息。电话应用程序可能会关闭,因此需要唤醒并询问当前信息。

我正在使用 swift 7 和 WatchOS 2.2 和 IOS 9.3

Stackoverflow 上的很多信息都指向 watchOS 1,因此不再有效。

我期待您的解决方案。

4

1 回答 1

0

查看WCSession,因为有不同的方法可以发送不同类型的数据。这个实现是发送一个字典。

必须WCSession在手表和手机设备上设置。在 AppDelegate 中didFinishLaunchingWithOptions:,我在其init方法中使用 ExtensionDelegate。import WatchConnectivity使用时请务必WCSession。如下使用 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
}
于 2016-05-19T21:31:52.333 回答