在被问及获得iOS通知权限时检测?

时间:2015-02-19 11:36:37

标签: ios permissions notifications

在iOS客户端首次运行时,您会收到一个UIAlert,要求获得发送此人通知的权限。

我想知道它是否可能首先出现:

  1. 在此警报触发时(发生之前)捕获
  2. 抓住给出的回复(取消或确定)(发生后)
  3. 是否有这种方法可以获得上述两种情况的回调?

    非常感谢

2 个答案:

答案 0 :(得分:4)

在iOS 8及更高版本中,在AppDelegate中实现以下方法:

- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings {

    // You could check here [[UIApplication sharedApplication] currentUserNotificationSettings]

    // This is where you set up your local notification
}

此方法是UIApplicationDelegate方法,因此您只需在MyAppDelegate.m文件中实现该方法。

来自documentation

  

告诉代表可以使用哪些类型的通知来引起用户的注意。

     

参数

     

应用程序:注册用户通知设置的app对象。

     

notificationSettings:您的应用可用的用户通知设置。

     

此对象中的设置可能与您最初请求的设置不同。

     

讨论

     

使用本地或远程通知提醒用户注意新信息的应用必须通过调用app对象的registerUserNotificationSettings:方法来注册他们想要使用的通知类型。 (在8.0之前的iOS版本上链接的应用程序中,当您安排本地通知时,注册也可能会隐式发生。)您的应用程序的请求与用户的当前首选项相结合,以确定允许的通知类型,并将结果传递给此notificationSettings参数中的方法。

     

首次注册应用程序的首选通知类型时,系统会询问用户是否应允许您的应用程序发送通知并存储用户的响应。在后续注册尝试期间,系统不会提示用户。用户始终可以使用“设置”应用更改通知首选项。

     

由于用户的首选项可能会更改,因此您应始终检查notificationSettings参数的内容。这些设置仅控制是否向用户通知本地或远程通知。该通知仍会在适当的时间发送给您的应用。

答案 1 :(得分:1)

应用程序本身会导致警报弹出,因此您无需“捕获”任何内容。

致电- (void)registerForRemoteNotifications后,操作系统将触发警报。

阅读here了解详情。