有没有办法知道用户拒绝接收推送通知?

时间:2015-11-24 16:38:00

标签: ios push-notification

有一个类似的问题,但答案根本不能满足我。

iOS7 and iOS8: how to detect when user said No to a request for push notifications

我需要具体了解用户在显示相关弹出窗口时选择的内容

enter image description here

2 个答案:

答案 0 :(得分:0)

Luda -

您提到的那个问题给出了两部分答案 - 这取决于您的iOS版本。如果您使用的是iOS7,根据您的屏幕截图显示情况并非如此,那么您将无法获得任何回调。但如果您使用的是iOS 8(大概是9),您将收到

的电话
application:didRegisterUserNotificationSettings

用户是按下OK还是不允许。从iOS 8开始,您需要解析传递给该回调的UIUserNotificationSettings参数,以确定用户是否接受或拒绝推送通知。

答案 1 :(得分:0)

您可以在请求推送通知后几秒钟拨打此电话 - UIApplication.sharedApplication().isRegisteredForRemoteNotifications()

请记住,您只能为> iOS8执行此操作 - 否则您不会知道

这会返回Bool,您可以根据需要执行结果。

我以前在AppDelegate中使用此功能,当时在Foreground中打开应用程序,例如:

func applicationWillEnterForeground(application: UIApplication) {
        let isRegistered = UIApplication.sharedApplication().isRegisteredForRemoteNotifications()
        if !isRegistered {
             // The user has not allowed pushes
        }
}