【问题标题】:Why are messages sent with "transferUserInfo" from my Watch are not delivered to the iPhone when the iPhone has been out of reach for some time?为什么当 iPhone 离开一段时间后,我的 Watch 使用“transferUserInfo”发送的消息没有发送到 iPhone?
【发布时间】:2015-11-18 18:36:37
【问题描述】:

问题:

我尝试使用“transferUserInfo”将信息从我的 Watch 应用程序发送到 iPhone 主应用程序。这在 iPhone 可用时有效。

如果 iPhone 不可用,据我了解,消息应该在 iPhone 可用时排队并按顺序传递。但是当 iPhone 一段时间不可用时它不起作用(然后没有调用“didReceiveUserInfo”并且消息丢失了)。

我可以做些什么来确保我在 iPhone 不可用时发送到 iPhone 的所有消息最终都被传递并且不会丢失?

这是一个 iOS/watchOS 错误,是我的实现中可能存在的问题,还是这是预期的行为?其他人是否遇到过同样的问题?

设备和操作系统

  • 装有 iOS 9.1 的 iPhone 6s
  • 装有 watchOS 2.0.1 的 Apple Watch

【问题讨论】:

  • 您能澄清一下“遥不可及”的意思吗?也就是说,手机刚刚被锁定了吗?手机是否超出蓝牙范围?
  • 是的,当然:如果超出蓝牙范围一段时间,用户信息将不会传递。 (有趣的是,如果它在蓝牙范围之外仅几秒钟,数据就会被传递。)

标签: ios watchos-2 ios9.1


【解决方案1】:

你的猜测是对的,transferUserInfo: 应该在未连接时必须入队。

但是,传输时也可能发生断开或错误。 在这种情况下,手表操作系统似乎没有重新传输。

WCSessionDelegate,有一个回调-session:didFinishUserInfoTransfer:error:。为案例成功或错误调用此回调。

这样,您可以获得错误条件,您可以使用transferUserInfo:重新发送

【讨论】:

  • 感谢您的帮助。但是,如果 iPhone 在 Apple Watch 的 BT 范围内,如何自动发起重发?
猜你喜欢
  • 1970-01-01
  • 2019-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多