2012-08-28 3 views
2

Использование UILocalNotification когда приложение открыто, эта функция в приложении делегата обжигают:UILocalNotification когда приложение закрыто

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification 
{ 

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

Мне нужно уволить его, потому что она тот, кто принимает меня на другую сцену, - что мне нужно представить, когда кто-нибудь получит уведомление.

Работает только тогда, когда она находится на заднем плане.

ответ

6

Вы должны ввести application:didFinishLaunchingWithOptions:. Уведомление будет одним из вариантов.

- (BOOL)application:(UIApplication *)application 
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]; 
    if (notification) { 
     // handle your notification here. 
    } 
} 
+0

на самом деле это не работает, когда приложение закрыто. i havae попытался поместить туда [director_ pushScene: [mainScene scene]]; чтобы заменить сцену, и она не сработала. – user1280535

+0

Если все ваши (cocos2d) настройки сделаны другим способом ('application: didFinishLaunching:'), то это не будет выполнено. Я рекомендую переместить все необходимые настройки запуска в отдельный метод и вызвать его из методов 'didDinishLaunching:'. Надеюсь, вы понимаете, что я имею в виду. – DrummerB

+0

Я понял, но почему это не будет выполнено? так что к другому, если я поместил все настройки в другой метод, а затем назову его из didFinishLaunching? – user1280535

5

Из спецификации:

If the action button is tapped (on a device running iOS), the system 
launches the application and the application calls its delegate’s  
application:didFinishLaunchingWithOptions: method (if implemented); it passes 
in the notification payload (for remote notifications) or the local-notification 
object (for local notifications). 

Другими словами, application:didReceiveLocalNotification только когда, как вы нашли, что приложение работает.

Если приложение ЗАПУСКАЕТСЯ из-за локального (или в этом случае удаленного) уведомления, то товар из уведомления передается в метод application:didFinishLaunchingWithOptions:, и именно там вы его поймаете.

+0

Большое спасибо за ваш ответ – user1280535

Смежные вопросы