【问题标题】:How big can the payload be when sending data via WatchConnectivity?通过 WatchConnectivity 发送数据时,有效负载可以有多大?
【发布时间】:2015-10-08 21:04:01
【问题描述】:

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

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

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

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

供参考,WCSession的文档对WCErrorCodePayloadTooLarge有如下描述:

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

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

【问题讨论】:

    标签: ios ios9 watchos-2 watchconnectivity wcsession


    【解决方案1】:

    根据私有符号WCPayloadSizeLimitApplicationContextWCPayloadSizeLimitMessageWCPayloadSizeLimitUserInfo,限制(截至 iOS 9.0.2)为:

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

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

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

    【讨论】:

    • 非常感谢!是的,使用 transferCurrentComplicationUserInfo: on WCSession 发送大于 65.5KB 的字典作为复杂数据对我来说失败(从未交付,iOS 9.2.1,watchOS 2.1)
    • @ersjoh 那么如何发送大字典呢? stackoverflow.com/questions/42783611/…
    • @AriX 那么如何发送大字典呢? stackoverflow.com/questions/42783611/…
    • 我一直在玩这个。我猜苹果没有记录限制是什么,因为它们似乎压缩了数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-26
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    相关资源
    最近更新 更多