首页 > 其他分享 >iOS开发 重要通知(critical-alerts)

iOS开发 重要通知(critical-alerts)

时间:2023-11-16 15:25:44浏览次数:36  
标签:lastSnsToken 配置文件 单击 alerts iOS critical 按钮 deviceToken

重要警报(critical-alerts)是 iOS 12 和 watchOS 5.0 中的一种新型选择加入通知,允许绕过“请勿打扰”和静音开关。他的本意是出现紧急情况,需要用户立即关注的关键事件。

一、适用程序

苹果不允许通过重要通知来推送营销信息,因此,此类通知仅限于医疗或健康相关应用程序、公共安全或特殊安全应用程序。所以,重要警报需要苹果公司授予的特殊授权。 申请入口:苹果重要通知申请入口 需要填写的内容: 1.app类型 2.描述我们的app 3.发送紧急通知的消息类型 4.紧急通知的频率 5.解释为什么需要用到紧急通知及功能设计过程 我们需要解释应用正在做什么以及计划如何向我们发送重要警报。Apple 希望您列出一个令人信服的理由,说明为什么我们的应用程序可能需要用户立即关注。 最后就是等待申请结果的邮件。

二、配置文件

登陆苹果开发者账号,选择要启用关键警报的应用程序的标识符。勾选“重要警报”框。然后单击“保存”按钮。

 

导航到Profiles,然后单击加号按钮注册新的配置文件。 选择“iOS 应用程序开发”选项,然后单击“继续”按钮。 选择您的应用程序 ID,然后单击“继续”按钮。 选择所有证书并单击“继续”按钮。 选择您的设备并单击“继续”按钮。 输入您的配置文件的名称,然后单击“生成”按钮。 单击“下载”按钮。然后双击以下文件来安装您的配置文件,发布证书也是相同流程。  

Xcode 配置

选择您在前面的步骤中下载并安装的配置文件。 查看权限 在设置UNUserNotificationCenter中增加criticalAlert func requestAuthorization(completion: ((Bool, Error?) -> Void)?) { let options: UNAuthorizationOptions if #available(iOS 12.0, *) { options = [.alert, .badge, .sound, .criticalAlert] } else { options = [.alert, .badge, .sound] } UNUserNotificationCenter.current().requestAuthorization(options: options) { (granted, error) incompletion?(granted, error) } } 然后在app.entitlements中增加keycom.apple.developer.usernotifications.critical-alerts类型为boolean 并将值设为1

Critical alerts APNS 格式

最后,需要在从服务器发送推送通知时修改 APS,可以加入声音键对象。 { "aps":{ "alert": "This is a Critical Alert!", "badge": 1, "sound": { "critical": 1, "name": "your_custom_sound.aiff", "volume": 1.0 } } } 添加自定义声音文件(.aiff 格式)并指定设备音量(值 0.0 到 1.0),其中 1.0 表示全音量。  

如何测试紧急通知

工具下载: Push Notifications 工具界面: 需要的参数配置:
  1. .p8
  1. key ID
  3.team id: 4:bundle id : 5.device token: 代码里获取 ===device token:===d94d073a2ba5aae294920dd0d7680c2fb06fd4146bc9bee3a889f9d5acd86899
    func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
        print("===device token:===\(deviceToken.hexString)")
        // 记录/获取推送token,发生改变则将token上传
        if UserDefaults.standard.object(forKey: "lastSnsToken") == nil {
            WoUser.currentUser.needUpload = true
            UserDefaults.standard.set(deviceToken.hexString, forKey: "lastSnsToken")
        } else {
            let lastSnsToken: String = UserDefaults.standard.object(forKey: "lastSnsToken") as! String
            if lastSnsToken != deviceToken.hexString {
                WoUser.currentUser.needUpload = true
                UserDefaults.standard.set(deviceToken.hexString, forKey: "lastSnsToken")
            } else {
                WoUser.currentUser.getUploadUserInfoTag()
            }
        }
//        Replies.didRegisterForRemoteNotifications(withDeviceToken: deviceToken)
        
    }

 

标签:lastSnsToken,配置文件,单击,alerts,iOS,critical,按钮,deviceToken
From: https://www.cnblogs.com/laolitou-ping/p/17836326.html

相关文章

  • 微信团队分享:详解iOS版微信视频号直播中因帧率异常导致的功耗问题
    本文由微信客户端团队rhythm分享,原题“视频号直播:如何进一步降低功耗占用?”,本文有修订和改动。1、引言功耗优化一直是app性能优化中让人头疼的问题,尤其是在直播这种用户观看时长特别久的场景。怎样能在不影响主体验的前提下,进一步优化微信iOS端视频号直播的功耗占用,本文给出......
  • 【iOS逆向与安全】某茅台App算法分析还原
    1.目标某茅台软件的actParam算法分析还原。2.使用工具mac系统frida-ios-dump:砸壳已越狱iOS设备:脱壳及frida调试IDAPro:静态分析Charles:抓包工具ss:小火箭,配合Charles使用3.流程处理启动闪退在IDAPro搜索SVC得到如下函数列表:NOP掉sub_函数的最后一行汇编......
  • 苹果iOS系统有几种开发者账号,分别有什么区别,我们该如何选择
    我们常见的开发者账号就是三种:个人开发者账号、公司开发者账号和企业开发者账号之外,当然除了这三种还有另外的如教育机构开发者账号和政府机构开发者账号,通过今天的这篇文章可以更清晰的了解并选择自己的需求。在移动开发领域中,苹果已经发展成最强大的平台之一,苹果为了支持开发者构......
  • token以及axios响应拦截器请求拦截器
    一、token的介绍1.概念访问权限的令牌,本质上是一串字符串2.创建正确登录后,由后端签发并返回3.作用判断是否有登录状态等,控制访问权限注意:前端只能判断有无token,而后端才能判断token的有效性4.使用目标:只有登录状态,才能访问内容页面1.在utils/auth.js中判断有无token令牌字符串,则强......
  • 如何进行iOS技术博客的备案?
    ​ 如何进行iOS技术博客的备案?标题:iOS技术博客备案流程及要求解析 摘要:在本篇问答中,我们将为iOS技术博主介绍如何进行备案。如果你的iOS应用只包含简单的页面,并通过蓝牙进行数据采集和传输,那么你可能不需要备案。然而,如果你希望通过域名调用后端服务,建议进行备案以满足国内......
  • 1821_ChibiOS中的事件机制
    GreyZhang/g_ChibiOS:IfoundanewRTOScalledChibiOSanditseemsinteresting!(github.com)1.这里开篇就讲了ChibiOS中的事件机制非常强大,算是OS的一个子系统功能。提供了多事件等待、事件与线程多对多、异步广播同步检查等功能。2.事件机制涉及到的三个对类别分别是:事件......
  • 1824_ChibiOS的OS库
    GreyZhang/g_ChibiOS:IfoundanewRTOScalledChibiOSanditseemsinteresting!(github.com)1.对于ChibiOS来说,OSLIB是一个可选的部分。2.这部分有些功能之前是在内核中的,但是由于内核是两种,RT以及NIL,这里面的代码是有一些会重复的。这样,重复的一部分功能也被拆分了出来。......
  • 1825_ChibiOS的OSLIB中的存储分配器
    GreyZhang/g_ChibiOS:IfoundanewRTOScalledChibiOSanditseemsinteresting!(github.com)1.之前有点不是很理解什么是静态OS,从这里基本上得到了这个答案。所谓的静态,其实就是内核之中不会使用Free以及Malloc这样的存储分配功能。2.虽然内核之中没有用到这样的存储动态......
  • 1823_ChibiOS的调试功能
    GreyZhang/g_ChibiOS:IfoundanewRTOScalledChibiOSanditseemsinteresting!(github.com)1.这里提到的调试,debug,跟测试工作本身是没有直接关系的。主要是为了保证开发以及实现上的保障来考虑的。2.所有的调试选项对于内核配置来说都是可访问的,这种设计应该是因为这样的......
  • Xcode15 下载 iOS 17.0.1 Simulator 失败
    更新完Xcode15,启动后自动下载iOS17.0.1Simulator,总是下载失败,可以到苹果官网去网页下载,地址:https://developer.apple.com/download/all/ 下载完之后,终端安装:xcode-select-s/Applications/Xcode.appxcodebuild-runFirstLaunchxcrunsimctlruntimeadd"~/Downloads/i......