使用UserNotifications创建通知时,Info.plist需配置哪些权限键?
用户问题
我使用UserNotifications类开发推送通知功能,相关代码如下:
Center.requestAuthorization(options:[.alert, .sound, .badge]) UNNotificationRequest(id: id.rawValue, content: notification, trigger: trigger) notificationCenter.add(request) { (error) in if let error = error { } }
我知道要在Info.plist里配置权限相关键,但有几个疑问:
- 到底需要配置
Local Network Usage Description(对应键NSLocalNetworkUsageDescription)还是NSLocalNotificationUsageDescription? - 还有其他必须配置的键吗?
另外,我试过添加NSLocalNetworkUsageDescription,但它完全没影响通知权限请求的系统弹窗,我觉得这个配置逻辑有问题。
解答
NSLocalNetworkUsageDescription和通知权限无关:这个键是用来申请本地网络访问权限的,和推送通知没有关联,所以你添加它后不会改变通知权限的弹窗逻辑,这是正常现象。NSLocalNotificationUsageDescription已废弃:iOS 10之后苹果推出UserNotifications框架统一管理通知,这个旧的权限描述键已经失效,不需要配置。- 通知权限无需额外Info.plist键:基于你使用的
UNNotificationRequest这类iOS 10+的API,只需要在调用requestAuthorization时传入正确的权限选项(比如你代码里的.alert, .sound, .badge)即可,通知权限的系统弹窗文案由系统默认提供,不需要在Info.plist中添加额外的通知相关描述键。 - 远程推送需额外配置:如果你的应用需要使用APNs远程推送,要在Xcode的Capabilities中开启
Push Notifications;若需要后台接收推送,还需在Background Modes里勾选Remote notifications。
内容的提问来源于stack exchange,提问作者polina Eliss
相关产品推荐
相关产品推荐

