iOS推送通知不起作用
Posted
技术标签:
【中文标题】iOS推送通知不起作用【英文标题】:iOS Push notification Not working 【发布时间】:2015-09-29 11:09:50 【问题描述】:我必须为我的应用程序实现推送通知服务,所以我创建了 App ID,并在生产中启用了推送通知。第一次在我的设备中安装应用程序时,推送通知允许和不允许弹出窗口,如果它单击全部。它没有生成推送通知。下次我启动时它不会要求任何弹出窗口并且我无法生成设备令牌,请帮助我。
谢谢, Nikhil.CH
【问题讨论】:
关注code.tutsplus.com/tutorials/… 我按照上述教程进行操作,但仍然无法获取设备令牌,但它要求推送通知允许确认,第一次, -(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error NSLog(@"获取令牌失败,错误:%@",error); 使用这段代码,让我知道错误是什么 @baydi 我是“didFailToRegisterNotificationWithError”也没有触发 【参考方案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];
第三步:实现以下方法接收并保存上述方法调用的令牌
- (void)application:(UIApplication *)iApplication didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)iDeviceToken
- (void)application:(UIApplication *)iApplication didFailToRegisterForRemoteNotificationsWithError:(NSError *)iError
如果您没有获得推送令牌,则错误方法didFailToRegisterForRemoteNotificationsWithError
必须为您提供一些有用的信息。
【讨论】:
【参考方案2】:首先,您需要确保在显示“允许”弹出窗口后获得令牌或错误。注册通知的方法在 iOS8 中发生了重大变化,如果您使用旧的,它会静默失败。 这里是一个 sn-p:
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)])
// iOS 8
[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
else
//.. the old one
大多数情况下,失败的原因可能是错误的 prov 配置文件和证书匹配,或者是因为您在防火墙或 *** 后面进行测试。 为了测试它们,我使用了PUSHER 一个很棒的软件。
【讨论】:
以上是关于iOS推送通知不起作用的主要内容,如果未能解决你的问题,请参考以下文章
2195端口是强制要求开放的吗? IOS 推送通知在 php 中不起作用,而 Ios 推送通知在 laravel 中没有进入移动设备