15

使用 WatchConnectivity 框架发送数据时,无论是从手机到手表还是反之亦然,在框架给出WCErrorCodePayloadTooLarge错误之前,有效负载可以有多大?

我在 Apple 的文档中找不到答案,目前互联网上似乎没有太多关于此的信息(事实上,谷歌搜索WCErrorCodePayloadTooLarge只给了我 4 个结果)。

有没有人测试试图找到这个答案?如果这个问题没有得到答案,我会尝试自己做并发布结果。

到目前为止,我所掌握的所有信息是它可能能够支持大于 30 MB 的文件。我认为这是因为我在 iPhone 上拍摄了很多原始照片,它们的大小通常约为 36MB,并且它们总是出现在我手表的照片应用程序中。

作为参考,WCSession的文档有以下描述WCErrorCodePayloadTooLarge

指示正在发送的项目超出最大大小限制的错误。数据字典和文件都可能发生这种类型的错误。

在 watchOS 2.0 及更高版本中可用。

4

1 回答 1

35

根据私有符号WCPayloadSizeLimitApplicationContext, WCPayloadSizeLimitMessage, WCPayloadSizeLimitUserInfo,限制(从 iOS 9.0.2 开始)为:

  • 65,536 字节 (65.5 KB) 的消息
  • 65,536 字节 (65.5 KB) 用于用户信息
  • 262,144 字节 (262.1 KB) 用于应用程序上下文

我不知道为什么 Apple 不会记录这一点,除了通过 WatchConnectivity 发送字典来确定它们到底有多大可能很困难。当然,可接受的尺寸可能会随着时间而改变。

我在发送文件时找不到(也没有亲自观察到)任何最大大小限制,尽管我注意到当您发送大文件(数百 MB)时它似乎变得不可靠。

于 2016-01-29T04:07:49.767 回答