iphone, как убедиться, что приложение запускается только после того, как оно получит местоположение пользователя? - PullRequest
0 голосов
/ 06 апреля 2011

Я делаю следующее, чтобы убедиться, что мое приложение запускается только после того, как оно получает обновление местоположения для пользователя.

1) Мой делегат приложения реализует CLLocationManagerDelegate

2) В моем делегате приложения метод didFinishLaunchingWithOptions я выполняю

[locationManager startUpdatingLocation]

, где locationManager - это экземпляр CLLocationManager, а затем возвращает YES

3) в моем приложении делегат реализовал этот метод

 - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

4) Теперь, когда вызваны методы didUpdateToLocation, я делаю

  [self.window addSubview:myViewController.view];
  [self.window makeKeyAndVisible];

5) У меня также есть заставка

Так вот, что я вижу, страница-заставка появляется на секунду или две, а затем на секунду или около того появляется простое белое окно, и затем я вижу свой myViewController.view

Я хочучтобы избежать появления этого белого простого окна, я знаю, что оно появляется, потому что в это время мой телефон пытается обновить текущее местоположение пользователя, но я бы хотел, чтобы в течение этого времени он отображал заставку вместо отображения белого простого окна.

Ответы [ 3 ]

2 голосов
/ 06 апреля 2011

Добавьте вид изображения с тем же изображением, которое вы используете в качестве заставки, в окно в MainWindow.xib.

(PS: какой ужасный пользовательский опыт! Что вы будете делать, если менеджеру местоположения не удастся получить определение местоположения? Или если потребуется 30 секунд, чтобы получить его? Что бы вы ни делали, ваши пользователи исчезнут.)

0 голосов
/ 06 апреля 2011

Я согласен с другими здесь. Это может быть подделкой, но это ужасно для пользователя.

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

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

0 голосов
/ 06 апреля 2011

Вам потребуется код для отображения копии заставки.

, но вы также должны учитывать, что пользователь может отклонить запрос разрешения службы определения местоположения или не находиться в хорошей зоне покрытия GPS или в режиме полета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...