it-swarm.com.ru

Не получает Push-уведомления в iPhone

Я сделал пример приложения PushTest для Push-уведомлений, используя это руководство

И, используя вышеприведенный учебник, я получил сообщение, что «PushTest» хотел бы отправить вам Push-уведомление (ровно один раз), и после этого я удаляю приложение с iPhone, перезагружаю iPhone, но не могу получить то же сообщение снова.

Я запустил скрипт sample.php (обновлял предложенные изменения) и получил сообщение «подключен к APNS» и «ваше сообщение отправлено».

Но я не получил ни одного Push-уведомления.

Пожалуйста, ведите меня, где я не прав?
Или то, что я пытаюсь для получения push-уведомлений.

19
Idiot

Вы не получите Push только в 2 случаях

1.) Если ваше приложение находится на переднем плане.

2.) Ваш токен устройства недействителен для получения Push-уведомления. Пожалуйста, проверьте оба условия, если вы все еще не получаете Push, пожалуйста, дайте мне знать . Спасибо

29
Divyam shukla

Убедитесь, что вы используете профиль обеспечения с поддержкой Push-уведомлений. а затем проверьте, отправляете ли вы токен на сервер. 

6
Saqib Saud

Я следовал тому же учебнику.

Убедитесь, что ваше приложение занесено в центр уведомлений, а его тип оповещения - что угодно, но не нет.

Вы должны проверить свое уведомление в 3 условиях,

Когда ваше приложение открыто, в фоновом режиме и когда закрыто.

Для этого вам необходимо проверить эти методы

// To Register your device token
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken

//If your app is not able to register
- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
{}

//Your app receives Push notification.
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{

    UIApplicationState state = [application applicationState];

    // If your app is running
    if (state == UIApplicationStateActive)
    {

        //You need to customize your alert by yourself for this situation. For ex,
        NSString *cancelTitle = @"Close";
        NSString *showTitle = @"Get Photos";
        NSString *message = [[userInfo valueForKey:@"aps"] valueForKey:@"alert"];
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@""
                                                            message:message
                                                           delegate:self
                                                  cancelButtonTitle:cancelTitle
                                                  otherButtonTitles:showTitle, nil];
        [alertView show];
        [alertView release];

    }
    // If your app was in in active state
    else if (state == UIApplicationStateInactive)
    {
    }
}
2
Baby Groot

Пожалуйста, проверьте в Настройки вашего устройства , включены ли уведомления для приложения, и убедитесь, что тип уведомления не «Нет» в Центре уведомлений .

1
Yogi

Убедитесь, что вы выбрали правильный профиль предоставления  provision profile

и что ваше приложение свернуто. Если приложение не свернуто, используйте

 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    NSLog(@"info %@", userInfo);
}

Другое полезная информация о проблемах.

Для толчков TESTING вы можете использовать APN Tester Free .Внимание: вставить токен С пробелами.

1
Nik Kov

Я не получал ничего в

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any])

Но мой компилятор остановился на точке останова в 

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
0
Mantas Laurinavičius