Какой код требуется для запуска приложения iPhone после того, как локальное уведомление было запланировано и отображено? - PullRequest
1 голос
/ 26 января 2012

Я планирую локальное уведомление, которое в порядке. Мне нужно знать, как разрешить пользователю запускать мое приложение после отображения уведомления на экране.

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

Я просматривал ссылку на протокол UIApplicationDelegate и чувствую, что он может находиться в области launchOptions в пределах -didFinishLaunchingWithOptions:, но мне нужен небольшой указатель.

Ответы [ 3 ]

4 голосов
/ 26 января 2012

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

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

Чтобы открыть конкретное представление, используйте launchOptions и приложение: didReceiveRemoteNotification method.

1 голос
/ 26 января 2012

Параметры запуска должны содержать ключ UIApplicationLaunchOptionsLocalNotificationKey, который, в свою очередь, дает вам UILocalNotification, связанный с уведомлением.Кроме того, при планировании уведомления ваш UILocalNotification имеет свойства alertBody, alertAction и, необязательно, alertLaunchImage, которые управляют отображаемой информацией.Действие описывает текст кнопки, которая запускает ваше приложение, а тело - это информация, отображаемая над кнопками.Вы можете предоставить конкретный образ запуска для этого запуска, чтобы имитировать уже запущенное приложение.

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

1 голос
/ 26 января 2012

didFinishLaunchingWithOptions: сработает.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
      UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
     // .. etc
};

Имейте в виду, что вам также нужно реализовать

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

, если вы получаете push-уведомление во время работы приложения- или фон)

...