如果在推送通知弹出窗口中单击“不允许”,回调方法是啥? [复制]
Posted
技术标签:
【中文标题】如果在推送通知弹出窗口中单击“不允许”,回调方法是啥? [复制]【英文标题】:What is the Callback Method if You Click "Don't Allow" in Push Notification Popup? [duplicate]如果在推送通知弹出窗口中单击“不允许”,回调方法是什么? [复制] 【发布时间】:2013-10-31 10:52:12 【问题描述】:在全新安装应用程序时会出现一个推送通知弹出窗口。有两个选择,确定和不允许(如果我没记错的话。)
如果我单击“不允许”,我想知道什么是回调方法。问题是,我实现了 didFailToRegisterForRemoteNotifications,因为我认为如果我单击“不允许”,它将直接转到 AppDelegate 中的该方法。但是,没有调用该方法。
我的问题是我需要知道用户点击“不允许”时的事件。有没有办法做到这一点? 我会很感激任何帮助。谢谢。
【问题讨论】:
didFailToRegisterForRemoteNotifications 是当与苹果注册服务通信失败时,无法知道用户刚刚点击了不允许,但是你可以查看 UIApplication,有一个方法可以知道 PushNotification 的状态注册 您找到解决方法了吗?我发布了另一个问题***.com/questions/22934729/… 【参考方案1】:这里没有委托回调:Callback Method if user declines Push Notification Prompt?
您可以在 AppDelegate 中使用 BOOL 变量来检查它,
AppDelegate.m
// declare a BOOL
BOOL allow = NO;
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
allow = YES;
[self doWhatever];
- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
allow = YES;
[self doWhatever];
【讨论】:
我明白了。所以没有办法解决我的问题。非常感谢您的所有回复。 从另一个问题粘贴代码不是答案 @JeromeDiaz 不用生气 Jerome,我参考了原文/【参考方案2】:didFailToRegisterForRemoteNotifications
是当与苹果注册服务通信失败时,无法知道用户刚刚点击了不允许,但是你可以查看UIApplication,有一个方法可以知道PushNotification注册的状态
NSUInteger rntypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
if (rntypes == UIRemoteNotificationTypeNote)
// application is not registered for any type of push notification
【讨论】:
didFailToRegisterForRemoteNotifications 在用户点击 no 时不会被调用。 阅读我的文字,我已经说过它没有被调用,我什至在你提出自己的答案之前就在问题下方的评论中告诉了它以上是关于如果在推送通知弹出窗口中单击“不允许”,回调方法是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
iOS 9:如何检测用户何时对推送通知请求说“不允许”? [复制]