【问题标题】:My iPhone app needs a persistent network connection...how to specify UIRequiredDeviceCapabilities?我的 iPhone 应用程序需要持久的网络连接...如何指定 UIRequiredDeviceCapabilities?
【发布时间】:2010-02-25 23:58:53
【问题描述】:

我正在尝试在我的 Info.plist 文件中设置 UIRequiredDeviceCapabilities 属性。我的应用需要持久的网络连接。如果我查看“wifi”键的定义,它会说:

如果您的应用程序包含此密钥 需要访问网络 设备的功能。

那么:“wifi”键是否表明我需要 WiFi,正如键名所暗示的那样?或者这是否意味着我只需要网络访问,正如密钥定义所暗示的那样?

【问题讨论】:

    标签: iphone info.plist


    【解决方案1】:

    如果您相信 Apple 自己的(通常含糊不清的)文档,则在 UIRequiredDeviceCapabilities 中指定属性会导致在 Apple 的交付点(应用商店)进行过滤。因此,如果您指定“wifi”,理论上非 wifi 设备将无法安装您的应用。但是,目前所有的iDevices都支持wifi。

    顺便说一句,UIRequiresPersistentWiFi 确实在某些方面直接与 wifi 相关。如果您将此属性设置为 true,从我自己的测试中我已经看到:

    • 在应用程序运行期间,即使在 30 分钟超时后,wifi 通信仍将继续可用
    • 如果应用程序正在运行并且 wifi 无线电当前超时为“关闭”(但 wifi 已启用),则首先网络访问会打开 wifi 无线电
    • 如果应用程序正在运行并且 wifi 已启用,但用户当前未加入任何接入点,则网络访问会导致出现系统提示以加入其中一个接入点

    或者,换一种说法:如果没有设置此标志,您的应用中通过 wifi 进行的通信可能会停止工作。或者有时您可以在您的 ipod 或 ipad 上启动您的应用程序,然后发现网络通讯失败,即使启用了 wifi 并且您靠近一个良好的热点。

    很遗憾,Apple 的文档如此混乱和混乱。

    【讨论】:

      【解决方案2】:

      首先,UIRequiresPersistentWiFi 不仅仅与 WiFi 有关,它只是一种声明您的程序是网络应用程序并且将持续使用任何连接的方式。 Apple 开发人员在网络编程的 WWDC 演示中特别提到了这一点(我认为是去年)。

      其次,所需设备功能的wifi 键似乎确实特别适用于 WiFi。在中国销售的联通 iPhone 已关闭 WiFi(但能够使用蜂窝连接连接到网络),并且我听说过有关wifi 密钥正在(或至少是)导致安装问题的报告。

      【讨论】:

        【解决方案3】:

        如果没有这个键,iPhone 会在闲置一定时间后禁用 wifi。使用此密钥,您的应用会永久启用 wifi。

        【讨论】:

          【解决方案4】:

          如果您需要持久 wifi,您应该使用密钥 UIRequiresPersistentWiFi

          UIRequiredDeviceCapabilities 键的作用正如其名称所示,指定您的应用需要设备具备哪些功能。无论是wifi、gps、磁力计等

          【讨论】:

          • 我理解那部分。问题是,我不需要持久的 WiFi……我只需要持久的网络连接。我没有看到那个关键。
          猜你喜欢
          • 2023-04-02
          • 1970-01-01
          • 1970-01-01
          • 2014-10-05
          • 2010-12-20
          • 2021-01-16
          • 2013-06-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多