将数据从苹果手表传输到Swift中的iPhone

问题描述:

我一直在尝试多个小时才能找到一种方法将Apple Watch上的全局变量发送到iPhone。将数据从苹果手表传输到Swift中的iPhone

有很多紧靠从iPhone中的数据传输到Apple关注的问题,但不是反之亦然斯威夫特3.

,因为我想将数据从Apple关注转移到iPhone这不是重复,不副反之亦然。

我该怎么做?

+1

可能的重复[从iOS标签传递文本到WatchOS标签 - swift-](https://stackoverflow.com/questions/44673494/pass-text-from-ios-label-to-watchos-label-swift) –

从Apple Watch向iPhone传输数据与反向传输非常相似。

对于全局变量,你应该使用updateApplicationContext()WCSession的:

let session = WCSession.default() 
if session.activationState == .activated { 
    session.updateApplicationContext(["my_global": g_myGlobal]) 
} 

在iPhone上你应该分配委托给默认的WCSession并激活它。在WCSessionDelegate,实现以下方法:

func session(_ session: WCSession, didReceiveApplicationContext applicationContext: [String : Any]) { 
    let receivedGlobal = applicationContext["my_global"] as? TypeOfTheGlobal 
} 

或者您可以使用sendMessage(_:replyHandler:errorHandler:)但这将需要iPhone可到达。

一般来说,我会建议你按照扎克Kautz的建议和阅读约WatchConnectivity。这是手表和手机间最常用的通信方式。

使用watch connectivity框架,可以实现双向通信。