我怎样才能在后台唤醒我的 iPhone 应用程序以 运行 一个函数并将结果 return 发送到 Apple Watch?
How can I awake my iPhone app in the background to run a function and return the results to Apple Watch?
我的 Apple Watch 应用程序中有一个 table,它由来自 iPhone 应用程序的数据填充。
在 iPhone 应用程序上,我需要从互联网上获取这些数据。在 phone 上,该函数称为 retrieveData()。我还有一个名为 sendToWatch() 的函数,它会在 phone 应用程序打开时将此数据发送到手表。
我想找到一种无需打开 phone 应用程序即可 运行 retrieveData() 和 sendToWatch() 的方法。过去几个小时我一直在研究这个问题,它看起来很复杂。
我已经尝试过 Apple 文档中的 openParentApp 功能,但我不知道如何设置它或如何实现它。在过去的几个小时里,我尝试在网上搜索教程,但一切都已经过时了,我没有运气。
有人知道这方面的任何好的教程吗?
如您所知,您不能在 watchOS 2 中使用 openParentApp
。您可以使用 Watch Connectivity 而不是 openParentApp
。
参考。
http://www.kristinathai.com/watchos-2-how-to-communicate-between-devices-using-watch-connectivity/
下面是一个例子。
1) 从 Apple Watch
调用 sendMessage
方法
WCSession.defaultSession().sendMessage(applicationDict,
replyHandler: { ([String : AnyObject]) → Void in
// Handle reply
})
errorHandler: { (NSError) → Void in
// Handle error
});
2) 在您的 iPhone
中调用了 didReceiveMessage
方法
运行 retrieveData() 并通过此方法向 Apple Watch 发送数据。
func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {
// run retrieveData()
// send data to Apple Watch
replyHandler(["retrievedData" : data])
}
3) 在 Apple Watch
中接收数据 replyHandler
祝你好运!
我的 Apple Watch 应用程序中有一个 table,它由来自 iPhone 应用程序的数据填充。
在 iPhone 应用程序上,我需要从互联网上获取这些数据。在 phone 上,该函数称为 retrieveData()。我还有一个名为 sendToWatch() 的函数,它会在 phone 应用程序打开时将此数据发送到手表。
我想找到一种无需打开 phone 应用程序即可 运行 retrieveData() 和 sendToWatch() 的方法。过去几个小时我一直在研究这个问题,它看起来很复杂。
我已经尝试过 Apple 文档中的 openParentApp 功能,但我不知道如何设置它或如何实现它。在过去的几个小时里,我尝试在网上搜索教程,但一切都已经过时了,我没有运气。
有人知道这方面的任何好的教程吗?
如您所知,您不能在 watchOS 2 中使用 openParentApp
。您可以使用 Watch Connectivity 而不是 openParentApp
。
参考。 http://www.kristinathai.com/watchos-2-how-to-communicate-between-devices-using-watch-connectivity/
下面是一个例子。
1) 从 Apple Watch
调用sendMessage
方法
WCSession.defaultSession().sendMessage(applicationDict,
replyHandler: { ([String : AnyObject]) → Void in
// Handle reply
})
errorHandler: { (NSError) → Void in
// Handle error
});
2) 在您的 iPhone
中调用了didReceiveMessage
方法
运行 retrieveData() 并通过此方法向 Apple Watch 发送数据。
func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {
// run retrieveData()
// send data to Apple Watch
replyHandler(["retrievedData" : data])
}
3) 在 Apple Watch
中接收数据replyHandler
祝你好运!