我正在尝试在我的 Info.plist 文件中设置 UIRequiredDeviceCapabilities 属性。我的应用需要持久的网络连接。如果我查看“wifi”键的定义,它会说:
如果您的应用程序需要访问设备的网络功能,请包括此密钥。
那么:“wifi”键是否表明我需要 WiFi,正如键名所暗示的那样?或者这是否意味着我只需要网络访问,正如关键定义所暗示的那样?
我正在尝试在我的 Info.plist 文件中设置 UIRequiredDeviceCapabilities 属性。我的应用需要持久的网络连接。如果我查看“wifi”键的定义,它会说:
如果您的应用程序需要访问设备的网络功能,请包括此密钥。
那么:“wifi”键是否表明我需要 WiFi,正如键名所暗示的那样?或者这是否意味着我只需要网络访问,正如关键定义所暗示的那样?
如果您相信 Apple 自己的(通常含糊不清的)文档,则在 UIRequiredDeviceCapabilities 中指定属性会导致在 Apple 的交付点(应用商店)进行过滤。因此,如果您指定“wifi”,理论上非 wifi 设备将无法安装您的应用。但是,到目前为止,所有的 iDevices 都支持 wifi。
顺便说一句,UIRequiresPersistentWiFi在某些方面确实与 wifi 直接相关。如果您将此属性设置为 true,从我自己的测试中我已经看到:
或者,换一种说法:如果没有设置此标志,您的应用程序中通过 wifi 进行的通信似乎会停止工作。或者有时您可以在您的 ipod 或 ipad 上启动您的应用程序并发现网络通信失败,即使启用了 wifi 并且您靠近一个良好的热点。
可悲的是,Apple 的文档如此混乱和混乱。
首先,UIRequiresPersistentWiFi
它不仅仅与 WiFi 相关,而只是一种声明您的程序是网络应用程序并且将持续使用任何连接的方式。苹果开发人员在网络编程的 WWDC 演示中特别提到了这一点(我认为是去年)。
其次,wifi
所需设备功能的关键似乎确实与 WiFi 相关。在中国销售的联通 iPhone 已关闭 WiFi(但能够使用蜂窝连接连接到网络),我听说过有关wifi
密钥(或至少是)导致安装问题的报告。
如果没有此键,iPhone 将在一定程度的不活动后禁用 wifi。使用此密钥,您的应用程序将永久启用 wifi。
如果您需要持久 wifi,您应该使用 key UIRequiresPersistentWiFi
。
键的UIRequiredDeviceCapabilities
作用与名称所指的一样,指定您的应用程序需要设备具有哪些功能。无论是wifi,gps,磁力计等。