swift - watchOS2.2更新Glance数据

标签 swift watchkit watchos-2 ios9.3

我希望你们这些聪明的人能帮助我,因为网上的大部分数据都已经过时了。 我有一个显示财务信息的 iPhone 应用程序。 我想在 watch glance 屏幕上显示这个。

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

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

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

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

期待您的解决方案。

最佳答案

查看WCSession因为发送不同类型的数据有不同的方法。此实现正在发送字典。

必须在 watch 和手机设备上设置一个 WCSessiondidFinishLaunchingWithOptions: 中的 AppDelegate,我在其 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"])
    }
}

在 watch 上设置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
}

关于swift - watchOS2.2更新Glance数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37075213/

相关文章:

swift - 无效的 Swift 支持 - SwiftSupport 文件夹为空

ios - 使用单元格大小自动布局调整表格 View 框架的大小以适应动态内容

ios - swift 3 : How to assign variable of different option types without multiple if let statements?

xcode - 在 Swift 中从 Firebase 获取单独的数据

ios - 连接苹果 watch 来解析通知?

iphone - 有 WatchKit 传感器 API 吗?

swift - 如何在设备中部署 watch 应用?

ios - Apple Watch 模拟器上奇怪的表情符号替换

swift - 如何在Swift中使用单例进行数据共享?

ios - 无法更改 watchOS 2 中动画动态图像的持续时间