做局部通知需要在iOS用户权限?

问题描述 投票:21回答:5

我用我的应用程序UILocalNotification安排的通知。该通知做工精细,并显示了,当我想他们。我没有与该问题。我没有做任何远程/推送通知。

是什么让我疑惑的是,我从来没有看到著名的权限对话框,你通常在多个应用中看到的推送通知。我甚至复位我的设备,跑我的应用程序。这仍然没有引起权限对话框出现。

这是否权限对话框,如果你的应用程序只使用本地通知显示不出来或者我不实现一些实际导致应用程序,要求此权限的方法?

我知道我可以实现我自己的按钮后的应用程序开始即要求用户进行此权限,但我希望苹果照顾的是,尤其是因为它把远程和本地通知在设置应用程序是相同的。

swift notifications local uilocalnotification
5个回答
6
投票

注意:这包括推送通知/远程通知

使用Xcode6与iOS7或iOS8上测试时,当registerUserNotificationSettings:API是在运行时可用。

if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {  
    UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];  
    [[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];  
    [[UIApplication sharedApplication] registerForRemoteNotifications];  
} else {  
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];  
}  

由于http://corinnekrych.blogspot.ae/2014/07/how-to-support-push-notification-for.html


17
投票

是的,在iOS8上,本地通知确实需要的权限。

The documentation为registerUserNotificationSettings:规定

如果您的应用程序显示提醒,播放声音,或徽章的图标,而在后台,您必须在启动周期中调用该方法,请求允许以提醒那些方式的用户。通常情况下,如果你的应用程序使用本地或推送通知来提醒用户涉及您的应用程序的新信息提出这一要求。

建议你调用这个方法,你安排任何本地通知或者推送通知服务注册之前。


11
投票

它看起来像本地通知不需要任何用户权限。权限对话框只是显示了对推送通知。我能安排/取消本地通知,无需任何用户的权限。


2
投票

对,那是正确的。本地通知不需要任何操作系统的权限。然而,作为一个很好的做法,我建议给在这种情况下,用户从应用程序的退出选项。这将在两个方面很好地工作:

  1. 一个用户恼火,感到沮丧,因为再次见到本地通知还没有时间和,不知道推/本地通知之间的差异可能留在App Store中差评的。
  2. 它始终是一个很好的做法,提供标志来开启/关闭这些功能给定用户。

2
投票

苹果的presentLocalNotificationNow和scheduleLocalNotification文件说,

在此之前的任何安排本地通知,则必须调用registerUserNotificationSettings:方法来让系统知道什么类型的警报,如果有的话,你打算显示给用户。

所以,我不知道别人怎么在这个页面是说本地通知不需要用户权限。

结帐关于同一主题的这个其他的讨论:

Ask for User Permission to Receive UILocalNotifications in iOS 8

© www.soinside.com 2019 - 2024. All rights reserved.