我必须为我的应用程序实现推送通知服务,所以我创建了App ID,并在生产中启用了推送通知。第一次在我的设备中安装应用程序时,推送通知允许并且不允许弹出窗口,如果它单击全部。它没有生成推送通知。下次我启动它时不会要求弹出任何弹出,我无法生成设备令牌,请帮助我。
谢谢, Nikhil.CH
答案 0 :(得分:1)
首先,一旦您响应了推送通知权限警报详细信息就会被保存。要重置该设置并再次体验警报,请按以下步骤操作:
从设备中删除您的应用。
完全关闭设备并重新打开。
转到设置>一般>日期&时间并将日期设定为一天或更长时间。
再次完全关闭设备并重新打开。
现在,这是在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一个很棒的软件。