4

全新安装应用程序时会出现一个推送通知弹出窗口。有两个选择,确定和不允许(如果我没记错的话。)

如果我单击“不允许”,我想知道什么是回调方法。问题是,我实现了 didFailToRegisterForRemoteNotifications,因为我认为如果我单击“不允许”,它将直接转到 AppDelegate 中的该方法。但是,没有调用该方法。

我的问题是当用户点击“不允许”时我需要知道事件。有没有办法做到这一点?我会很感激任何帮助。谢谢。

4

2 回答 2

-3

但是从这里没有委托回调:Callback Method if user denied Push Notification Prompt?

你可以有一个 BOOL 变量在你的 AppDelegate 中检查它,

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];
}
于 2013-10-31T10:59:11.480 回答
-3
didFailToRegisterForRemoteNotifications 

是当与苹果注册服务通信失败时,无法知道用户刚刚点击了不允许,但是你可以查看 UIApplication,有一个方法可以知道 PushNotification 注册的状态

NSUInteger rntypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]; 
if (rntypes == UIRemoteNotificationTypeNote) {
    // application is not registered for any type of push notification
}
于 2013-10-31T11:03:17.983 回答