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推送通知不起作用的主要内容,如果未能解决你的问题,请参考以下文章

iOS推送通知在生产中不起作用

2195端口是强制要求开放的吗? IOS 推送通知在 php 中不起作用,而 Ios 推送通知在 laravel 中没有进入移动设备

Xamarin.iOS:Firebase 推送通知不起作用

推送通知在 iOS 5.0.1 上不起作用

IOS推送通知自定义声音不起作用

php iOS推送通知不起作用