由于删除WatchOS3无法直接连接到Firebase数据库,因此如果手机被锁定或应用未处于活动状态,我就会遇到阻止手表应用与数据保持同步的问题。
我目前正在通过电话中的“清醒”进行观看请求更新,这有效。但是,对Firebase中的数据进行的任何更改/添加都不会触发在后台运行的手机上的更新以通知手表。如果手机应用程序处于打开状态,则可以完美地传递通信。
我正在搜索Apple文档,但我没有看到我所缺少的内容,以便在后台保持手机/ Firebase连接处于活动状态。
有没有人对此有更好的运气或建议更强大的解决方案?
当前观察代码/流程:
func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) {
print("RECEIVED MESSAGE from Phone")
// REMOVED: This is where I parse json return and reloads the view data
replyHandler( [ "Pages" : "Good to Go" ] )
}
func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
print ("Watch Activation Complete")
}
override func awake(withContext context: Any?) {
super.awake(withContext: context)
let currentDate = Date()
sendMessageToPhone(command: dataCommands.sendData, value: currentDate.description)
}
func sendMessageToPhone(command: dataCommands, value: String) {
print("SENDING MESSAGE from Watch")
let data = [command.rawValue : value]
session.sendMessage(data, replyHandler: {(data: [String : Any]) -> Void in
print("Phone Got Message")
}, errorHandler: {(error ) -> Void in
print("Phone did not get message.")
self.messageErrorHandler(error: error as NSError)
})
}