iOS推送通知不起作用

时间:2015-09-29 11:09:50

标签: ios iphone push-notification

我必须为我的应用程序实现推送通知服务,所以我创建了App ID,并在生产中启用了推送通知。第一次在我的设备中安装应用程序时,推送通知允许并且不允许弹出窗口,如果它单击全部。它没有生成推送通知。下次我启动它时不会要求弹出任何弹出,我无法生成设备令牌,请帮助我。

谢谢, Nikhil.CH

2 个答案:

答案 0 :(得分:1)

首先,一旦您响应了推送通知权限警报详细信息就会被保存。要重置该设置并再次体验警报,请按以下步骤操作:

  1. 从设备中删除您的应用。

  2. 完全关闭设备并重新打开。

  3. 转到设置>一般>日期&时间并将日期设定为一天或更长时间。

  4. 再次完全关闭设备并重新打开。

  5. 现在,这是在iOS应用程序上注册推送通知的一步一步过程:

    第1步:在应用设备上询问iOS推送通知设置:

    if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]) {
        [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIRemoteNotificationTypeSound|UIRemoteNotificationTypeAlert) categories:nil]];
    } else {
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeSound];
    }
    

    第2步:从上面的方法调用中注册委托回调的通知

    - (void)application:(UIApplication *)iApplication didRegisterUserNotificationSettings:(UIUserNotificationSettings *)iNotificationSettings {
        [iApplication registerForRemoteNotifications];
    }
    

    第3步:实施以下方法以接收和保存从上述方法调用的令牌

    - (void)application:(UIApplication *)iApplication didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)iDeviceToken
    - (void)application:(UIApplication *)iApplication didFailToRegisterForRemoteNotificationsWithError:(NSError *)iError
    

    如果您没有获得推送令牌,那么错误方法didFailToRegisterForRemoteNotificationsWithError必须为您提供一些有用的信息。

答案 1 :(得分:0)

首先,您需要确保在显示“允许”弹出窗口后获得令牌或错误。注册通知的方法在iOS8中有一个重大变化,如果你使用旧的方法,它将无声地失败。
这是一个片段:

 if ([application respondsToSelector:@selector(registerUserNotificationSettings:)])
{
        // iOS 8
        [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
}
else{
//.. the old one
}


出现故障的大部分时间可能是由于错误的配置文件和证书匹配,或者是因为您在防火墙或VPN后面进行测试 为了测试它们,我使用PUSHER一个很棒的软件。