当 iOS 在后台并收到远程通知时发送数据到 Watch
Posted
技术标签:
【中文标题】当 iOS 在后台并收到远程通知时发送数据到 Watch【英文标题】:Sending Data to Watch when iOS in background and Remote Notifcation Received 【发布时间】:2016-10-08 20:15:30 【问题描述】:我正在使用sendMessageData(_:replyHandler:errorHandler:)
将信息从 ios 发送到 Watch OS。这可以正常工作,并且当 iOS 在我使用过的其他应用程序的后台时也可以正常工作。但是,当 iOS 在后台并且由于远程通知而调用该方法时,它似乎不起作用。
当 iOS 在后台并且有远程通知进入时,iOS 会触发一些进程。这些都有效,但是当它向手表发送数据时,这就是失败的地方。如果 iOS 应用在前台并且同样的远程通知进来,通过上述方法向手表发送数据是有效的。
当 iOS 在后台并且调用是由 iOS 处理的远程通知导致时,iOS 有没有办法向手表发送数据?
【问题讨论】:
【参考方案1】:来自https://developer.apple.com/reference/watchconnectivity/wcsession的文档:
SendMessageData() 是“用于您的 iOS 应用和 WatchKit 扩展之间的即时通信”
在我有类似情况的应用程序中,我使用 transferUserInfo()“在后台传输数据字典”,这在传输数据时更可靠,尤其是在后台。
希望有帮助!
【讨论】:
只要你有可达性,你就可以在 iOS 后台使用 sendMessageData。我在另一个应用程序中成功地做到了这一点,唯一的区别是发送是由 APN 与我的另一个应用程序中的后台位置更新引起的。我这里确实有可达性。尽管如此,我还是尝试了转移过程,但结果是一样的。以上是关于当 iOS 在后台并收到远程通知时发送数据到 Watch的主要内容,如果未能解决你的问题,请参考以下文章