我尝试在
中的应用程序启动时仅注册警报类型通知- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
致电
UIUserNotificationType types = UIUserNotificationTypeAlert;
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
在
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
我永久地获取notificationSettings
<UIUserNotificationSettings: 0x16dd6160; types: (UIUserNotificationTypeAlert UIUserNotificationTypeBadge UIUserNotificationTypeSound);>
和
UIUserNotificationSettings *settings = [[UIApplication sharedApplication] currentUserNotificationSettings]
尽管我最初选择了唯一的警报类型,给了我相同的所有类型。
所以我无法在开始时设置受限制的动态权限。
互联网上没有关于类似问题的任何信息。
答案 0 :(得分:1)
似乎无法从iOS8中的应用程序设置UserNotificationType
(至少)。需要使用通用通知中心来设置声音,徽章和警报的任意组合。只有第一次尝试注册时才需要使用推送通知权限警报设置include
。
另一种方法是在订阅服务器上发送(#include <.+>)|(#include \".+\")
,这应该根据此类型生成有效负载。
答案 1 :(得分:0)
您必须在(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
更新: 根据{{3}}:
第一次调用registerUserNotificationSettings:方法时, iOS提供了一个对话框,要求用户提供呈现权限 应用注册的通知类型。用户回复后,iOS 使用。异步调用UIApplicationDelegate对象 application:didRegisterUserNotificationSettings:方法,传递一个 UIUserNotificationType对象,指定类型 用户允许的通知。
用户可以随时使用更改其通知设置 设置应用。您的应用会立即添加到“设置”应用中 调用registerUserNotificationSettings:用户可以启用或禁用 通知,以及修改通知的位置和方式 呈现。因为用户可以在任何时候更改其初始设置 时间,在做任何工作之前调用currentUserNotificationSettings 准备演示通知
因此,如果用户已经接受了通知设置,则应用程序无法更改它们。 currentUserNotificationSettings
始终显示当前用户设置,而不是应用程序设置。