Обнаружение интернет-соединения iPhone SDK

Я работаю над iPhone- приложением, которое делает несколько звонков на веб-службы. Я разместил это приложение в магазине Apple, но оно было отклонено (и это правильно), поскольку сообщение об ошибке не было отображено пользователю, если нет подключения к Интернету. Поскольку, очевидно, приложение не будет работать без него.

Поэтому я просто хотел узнать, как это лучше всего достичь? Я предполагаю, что что-то нужно использовать в методе viewDidLoad который viewDidLoad окно с предупреждением, в котором говорится что-то вроде «Вам нужно подключение к Интернету для использования этого приложения».

Любые идеи были бы хорошы.

Если ваше приложение должно иметь доступ к сети, самым простым способом является добавление следующих параметров в ваш info.plist в виде логических значений.

  • SBUsesNetwork – убедитесь, что у устройства активное соединение (Edit: неприменимо, это похоже на частный API, который был найден в какой-то момент. Это не в документации разработчика Apple.)
  • UIRequiresPersistentWiFi – Обеспечивает подключение устройства через WiFi

Если ваш выбор не соответствует действительности, пользователю при представлении заявки будет представлено соответствующее сообщение. Лучше всего это сообщение из ОС и, следовательно, локализовано.

Если ваше приложение не может загружать данные с веб-сайта во время работы (потеря сигнала, сайт вниз), вы все равно должны предупреждать пользователя, хотя и не просто вращаться на неопределенный срок.

Apple Developer Connection имеет пример приложения ( Reachability ), в котором используется инфраструктура конфигурации системы для определения статуса сети. Он расскажет вам, есть ли у вас Wi-Fi, EDGE / 3G или нет подключения к Интернету.

Вы должны использовать части этого кода в своем приложении для определения состояния сети, а затем предоставлять сигналы интерфейса, если соединение недоступно, например, UIAlertView .

Предупреждающее слово: остерегайтесь SBUsesNetwork. Я лично хотел бы узнать, откуда взялась SBUsesNetwork, потому что она не упоминается нигде в документах Apple, которые я могу найти. Когда я добавляю ключ к plist моего приложения (как логическое) и устанавливаю в true, это, похоже, не влияет на поведение моего приложения – я не получаю предупреждения о режиме полета, независимо от того, начинаете ли вы приложение заново или перед тем, как предыдущий запуск, который был основан.

Мое приложение имеет UIRequiresPersistentWifi, установленное в true, которое, как представляется, также делает работу, которую люди считают SBUsesNetwork (плюс другие вещи!).

(Я запускаю iOS4.2.1 на iPhone 4, XCode 3.2.5 64 бит).

  • Кто-нибудь реализовал API PayPal через собственное приложение для iPhone?
  • Соглашение об именах iPhone ivar
  • Как написать таймер в Objective-C?
  • Что такое простой способ разбить NSArray с 4000+ объектами в нем на несколько массивов с 30 объектами каждый?
  • Как создать изображение из UILabel?
  • Декларация о свойствах и автоматическое резервирование хранилища
  • Невозможно добавить элементы в NSMutableArray ivar
  • iphone error: expected '=', ',', ';', 'asm' или '__attribute__' перед '' foo '
  • iPhone - UILabel, содержащий текст с несколькими шрифтами одновременно
  • Перетаскивание UIView внутри UIScrollView
  • Как создать одноэлементный class в объекте C
  • Давайте будем гением компьютера.