Уведомление APNS получено, но не отображается

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

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

NSLog(@"\n\n\n apns==%@\n\n\n",userInfo);


}

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

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    NSLog(@"\n\n\n\apns==%@\n\n\n\n",launchOptions);
}

Я проверил также в настройках -> Уведомления -> MyApp -> выбрать значки, звуки, оповещения

Я использую конфиг ниже:

Mac OS 10,9

xcode 5.0.2

IOS 7.0

Пожалуйста, посоветуйте мне.

Я хочу это сообщение.

Заранее спасибо.

3 ответа

Вы должны настроить вид оповещения для отображения вашего приходящего Push-сообщения, например:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    if (application.applicationState == UIApplicationStateActive)   
    {
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"App Notification" message:[NSString stringWithFormat:@"%@",[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]]delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alertView show];
    }
}

когда ваше приложение находится в фоновом режиме или закрывается, то этот менеджер от яблока вы не справитесь. Вы должны настроить предупреждение от устройства -> настройки. И вы отображаете значок, потому что это автоматически означает, что функциональность вашего значка означает целочисленное значение. просто установите настройку push-уведомлений на устройстве -> настройки -> Центр уведомлений ---> найдите свое приложение ---> выберите его и отобразите, как:

ОБНОВИТЬ:

Ваш push-формат Notificaton Payload JSON должен выглядеть следующим образом:

{
    "aps": {
         "badge": 10,
         "alert": "Hello world!",
         "sound": "cat.caf"
    }
}

Когда приложение закрыто и оно получает push-уведомление, то push-уведомление доступно в launchOptions параметр в -didFinishLaunchingWithOptions:

Вы можете получить к нему доступ таким образом:

//when app is closed initially but launched after tapping on the push notification 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    if (launchOptions) { //launchOptions is not nil
        NSDictionary *userInfo = [launchOptions valueForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"];

        if (userInfo) { //userInfo is not nil
            NSLog(@"%@",userInfo);
        }
    }
    return YES;
}

//when app is in background or active
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    NSLog(@"%@",userInfo);
}

ref: мой ответ на похожий вопрос: Push Notification -didFinishLaunchingWithOptions

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

{
    "aps": {
         "badge": 1,
         "alert": "your value!",
         "sound": "default"
    }
}

Я думаю "your value" ноль, когда вы звоните json_encode,

Другие вопросы по тегам