问题描述
如果您还没有权利文件,您会怎么做?
解决方法
有多种来源可以帮助您为 iOS 应用实施关键警报。我发现两个非常有帮助:
https://www.tapcode.co/2018/10/17/how-to-implement-critical-alerts-in-ios-12/
两者都描述了请求 Apple 批准的必要条件,以及如何更新您的项目以包含关键警报通知——只有一个例外。这些文章解释了如何更新您的权利文件以添加关键警报键。但是,当您的应用程序当前没有权利文件时,您会怎么做? 经过一番研究,我得出了以下步骤,可用作处理此困境的指南。 当您阅读解决更新权利文件的部分文章时,请按以下步骤操作:
- 在“功能”选项卡下,单击 +(加号)以添加功能(我选择了钥匙串共享)。这将导致 Xcode 生成一个 .entitlements 文件(克服了主要障碍)。
- 在项目导航器中单击该文件以将其打开。如果权利文件旁边的显示三角形处于打开状态,您将看到所选功能的密钥(钥匙串共享)。如果显示三角形未打开,请单击以将其打开。
- 单击权利文件旁边的 +(加号)以添加权利。将出现一个包含选项的下拉菜单,但您必须键入关键警报通知的键才能手动输入。
- 输入文章中关键警报通知的密钥: com.apple.developer.usernotifications.critical-alerts
- 将类型更改为布尔值并选择 YES 作为值。
- 单击您在步骤 1(钥匙串共享)中用于创建权利文件的功能旁边的 –(破折号)以将其删除。您现在拥有一个包含您需要的关键警报密钥的权利文件。
- 构建并运行您的应用,您应该会看到要求用户允许关键警报的提示。
任务完成!
特里·柴森
,IOS 关键警报实施指南 [2021 年 7 月]
第一步
-
您需要在 Apple 网站上request获得重要警报通知权利。
-
然后你需要等待苹果方面批准你的请求。他们会给你发一封电子邮件。就我而言,我只等了 3 天。一些开发者等待了大约 1-4 周的答复。
请求获得批准后您需要做什么?
-
打开 developer.apple.com 上的 Identifiers 页面,然后选择您要在其中启用严重警报的应用程序的标识符。
-
导航到 Profile page 并单击加号按钮以注册新的配置文件。
如何在 Xcode 中选择您的配置文件
如何添加授权文件
mobiledev99 指导
- 单击加号以添加功能。
- 选择“钥匙串共享”
- 打开 .entitlements 文件。将光标悬停在“权利文件”字段并单击加号按钮。
- 将值键名称更改为«com.apple.developer.usernotifications.critical-alerts», 类型为«Boolean»,值为«1»。
- 然后将光标悬停在“钥匙串访问组”字段并单击减号按钮。
我们需要在代码中添加什么
请求授权
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert,.badge,.sound,.criticalAlert]) { (granted,error) in}
对于本地通知
将您的 UNMutableNotificationContent
声音更改为下一个:
let notificationContent = UNMutableNotificationContent()
notificationContent.sound = UNNotificationSound.defaultCritical
如果你想使用你的自定义声音,你需要用这个替换代码:
let notificationContent = UNMutableNotificationContent()
notificationContent.sound = UNNotificationSound.criticalSoundNamed(UNNotificationSoundName(rawValue:"YourCustomSound.mp3"))
推送通知(来自 Tapcode 教程)
{
"aps":{
"alert": "This is a Critical Alert!","badge": 1,"sound": {
"critical": 1,"name": "your_custom_sound.aiff","volume": 1.0
}
}
}