Уведомление 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
,