如果在推送通知弹出窗口中单击“不允许”,回调方法是啥? [复制]

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中的设置处理推送通知允许

iOS 9:如何检测用户何时对推送通知请求说“不允许”? [复制]

一个通知推送窗口电话的多个回调

来自服务人员单击和图标的 FCM 消息 Chrome 推送通知不起作用

将 iOS 推送通知显示为警报弹出窗口而不是横幅样式