我必须为我的应用程序实现推送通知服务,因此我创建了在生产环境中启用推送通知的 App ID。第一次在我的设备中安装应用程序时,推送通知允许和不允许弹出窗口出现,如果它单击全部。它没有生成推送通知。下次我启动时它不会要求任何弹出窗口而且我无法生成设备 token ,请帮助我。
谢谢, 尼克尔.CH
最佳答案
首先,一旦您回复推送通知权限警报详细信息,就会保存。要重置该设置并再次体验警报,请按照以下步骤操作:
从设备中删除您的应用。
完全关闭设备并重新打开。
转至“设置”>“常规”>“日期和时间”,然后将日期提前一天或更多。
再次完全关闭设备,然后重新打开。
现在,这是在 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 步:注册以获取有关从上述方法调用的委托(delegate)回调的通知
- (void)application:(UIApplication *)iApplication didRegisterUserNotificationSettings:(UIUserNotificationSettings *)iNotificationSettings {
[iApplication registerForRemoteNotifications];
}
第3步:实现以下方法来接收并保存从上述方法调用的 token
- (void)application:(UIApplication *)iApplication didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)iDeviceToken
- (void)application:(UIApplication *)iApplication didFailToRegisterForRemoteNotificationsWithError:(NSError *)iError
如果您没有获得推送 token ,则错误方法 didFailToRegisterForRemoteNotificationsWithError
必须为您提供一些有用的信息。
关于iOS 推送通知不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32842375/