2011-11-14 23 views
3

首先,我知道我可以使用UIRequiresPersistentWiFi指定我的應用程序需要無線網絡連接。如何指定需要WiFi或3G?所有的

但事實上,我的應用程序正常工作與兩個WiFi或3G。我如何表達這樣的網絡要求?那裏有沒有Info.plist這個關鍵?或者用Reachability測試我自己的唯一途徑?

回答

3

究竟是什麼你想怎麼辦?如果你需要的只是網絡訪問,那麼你就不需要做任何事情就可以使其工作。可達性可能是有用的,因爲它可以讓你快速測試網絡是否嘗試任何地方連接之前可用,但如果你需要知道,如果有,甚至嘗試使用它之前的網絡,這只是有用的。在正常情況下,您可以嘗試使用網絡,並優雅地處理可能發生的任何錯誤。

+0

可以看到我想要爲用戶提供很好的提示,如果沒有無線網絡,也沒有3G是可用的。比'UIRequiresPersistentWiFi'更普遍的關鍵將會使這個非常簡單。 – an0

+0

@ an0:如果您嘗試使用網絡併發生錯誤,則可以向用戶顯示一條很好的錯誤消息。 「UIRequiresPersistentWiFi」僅適用於即使設備被鎖定也需要wifi保持供電的應用程序。這個概念不適用於3G無線電,因爲手機即使在鎖定狀態下也需要像手機一樣工作,因此可以保持3G連接。 –

2

我的建議是使用SCNetworkReachabilitySetCallback(它被調用時的網絡狀態發生變化),然後拋出一個錯誤,如果沒有WiFi或3G連接。

b.t.w.,所有鍵在Info.plist中UIKit的支持可以在http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html

+0

請注意,您不應該檢查可達性並拋出錯誤代替嘗試網絡連接。可達性的信息可能陳舊,並且通過使用它而不是僅嘗試連接,從而爲您節省了一切。但是,如果你不嘗試進行連接,然後得到一個錯誤,那麼就可能當網絡又回來了(如果你想自動重試,或以其他方式顯示網絡狀態到用戶)是聽可達性的通知,找出有用的。 –

相關問題