For*_*ger 8 push-notification ios
我在视图控制器按钮操作中有以下代码:
- (IBAction)requestPermissions:(id)sender
{
DDLogInfo(@"Start permission requesting.");
if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerForRemoteNotifications)]){
[[UIApplication sharedApplication] registerForRemoteNotifications];
} else {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didBecomeActive:)
name:UIApplicationDidBecomeActiveNotification
object:nil];
[[UIApplication sharedApplication]
registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound];
}
}
Run Code Online (Sandbox Code Playgroud)
注册完成后,didBecomeActive会发布通知,我正在检查用户做了什么:
-(void)didBecomeActive:(NSNotification *)notification
{
if([[UIApplication sharedApplication] enabledRemoteNotificationTypes] == UIRemoteNotificationTypeNone){
// if user decline
}
} else {
// if user accept
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:如果用户拒绝接收推送通知并稍后决定启用它们(设置 - >通知中心 - >我的应用程序),则会出现一个惊喜:设置中启用了"警报","徽章"和"声音" ,但应用程序返回 UIRemoteNotificationTypeNone.
有什么想法有什么不对?
注:我知道这些方法现在已经过时,所以请不要告诉我用registerForRemoteNotifications:和UIUserNotificationSettings,它已经完成.
好吧,应用程序重新启动后它可能返回一个正确的值,你能检查一下吗?我发现过这样的情况:当您的应用程序在后台更改“设置”中的权限时,iOS 会自动终止您的应用程序,如照片提要访问权限;我想在这种情况下,这只是 iOS 中的一个有缺陷的实现,这不会让我感到惊讶。我想我也遇到了您所描述的这种情况,并且在发现它在重新启动之前返回无效/旧值之后,我放弃了并在需要重新启动时进行流量计数。
无论如何,我认为你对此无能为力。
| 归档时间: |
|
| 查看次数: |
267 次 |
| 最近记录: |