广告咖,专注分享优质互联网运营推广资讯

客户端技术:一文带你了解iOS消息推送机制

发表时间:2020-10-21 19:17

  一.概述


  消息推送是App向用户传递信息的重要方式。无论应用程序是否运行,用户只要打开通知机构就可以接收推送消息。


  开发者可以通过调用iOS系统方法发起本地消息推送。比如我们最常见的闹钟应用,App可以根据本地存储的闹钟信息直接发起本地通知,所以即使没有网络,也能收到闹钟提醒。


  在远程消息推送中,服务端服务器将消息内容以固定格式发送到苹果推送通知服务(简称APNs),然后通过苹果的APNs服务器推送至用户设备,例如腾讯新闻可以向用户推送时事热点新闻,QQ邮箱可以向用户推送接收新邮件的提醒,游戏应用可以通过这种方式通知玩家新的游戏利益。


消息推送


  它不仅可以及时通知用户重要信息,还可以通过推送消息来提示用户打开或唤醒App,从而提高App的利用率。


  除了标题、内容、提示音、角号等固定推送参数外,开发者还可以在推送消息中添加用户自定义参数,让用户在点击推送消息时直接访问相关新闻、邮件或福利页面,提供更好的用户体验和页面曝光度。


  第二,XCode配置


  在使用消息推送的相关功能之前,我们首先需要准备支持推送功能的证书。个人开发者可以参考腾讯云的TPNS文档,在苹果开发者中心配置导出推送证书。


  此外,还需要在XCode的项目配置签名功能配置中添加消息推送权限。操作完成后,Xcode将自动生成或更新项目授权文件,并添加如图所示的APS环境字段。


  三、申请消息推送权限


  无论是本地推送还是远程推送,推送前都需要向用户申请推送权限,授权后只有用户才能收到推送消息。


  苹果在iOS10中引入了用户通知框架,该框架封装并升级了推送相关功能。除了之前UIApplication可以做的一些基本的本地和远程消息推送功能外,还增加了推送消息的撤回或修改、通知UI定制、前台显示推送消息等功能。


  在iOS10及以上版本中,苹果建议开发人员使用:


  request   authorizationwith   options   3360 completionhandler   3360方法适用于用户的消息推送权限。此方法需要指定一个用于描述推送权限的UNAuthorizationOptions类型参数,包括警报(消息标题、文本等。),声音(消息提示音),徽章(APP右上角显示的角标);您还可以使用此方法的completionHandler回调方法中的授予参数来确定用户是否允许授权。相关代码如下:


  在iOS9中,可以直接使用UIApplication的register   user   notification   settings方法。这个方法还需要配置声音、提醒、徽章等参数,但是没有回调方法来判断用户是否点击授权或者拒绝。相关代码如下:


  注意申请推送权限的方式,无论是UserNotifications还是UIApplication,申请用户授权的系统弹出窗口只会显示一次,iOS会记录用户对该应用的授权状态,不会重复向用户申请授权。


  消息推送是App的一个重要功能,也是一种很好的操作手段。因此,许多应用程序在启动后会检查消息推送的授权状态。如果用户拒绝消息推送权限,仍然会弹出窗口以一定频率提醒用户,然后在iOS设置中心打开APP的推送权限。相关代码如下:


  第四,本地推送


  在iOS10中,用户通知框架为我们提供了不可变的通知内容对象来描述标题、内容、提示音、角标等。UNNotificationTrigger对象描述消息推送的推送时间策略,UNNotificationRequest对象集成推送内容和时间。


  每个Request对象都需要配置一个标识来标识推送的内容,UNUserNotificationCenter通过这个标识来管理(包括添加、删除、查询和修改)所有请求。


  UNNotificationTrigger有四个子类,即untimeintervalnotification   trigger,用于控制消息推送通过时间间隔;未触发通知触发器由日期控制消息推送;解锁通知触发器由地理位置控制消息推送;取消推送通知触发远程消息推送对象。相关代码如下:在iOS9中,UIApplication提供了两种本地消息推送方法:presentLocalNotificationNow和scheduleLocalNotification。它们分别代表即时推送和固定日期推送。UILocalNotification描述消息内容和推送机会。


  示例代码是2s后推送的本地消息。“声音名称”属性用于描述消息的提示音。用户可以定制提示音(音频文件需要打包在安装包中)或使用产品运营默认的提示音乐。repeatInterval和repeatCalendar属性分别用于根据时差和日期重复提示操作。


ABUIABAEGAAgma-A4gUoxJmmygIwoAE4oAE

广告咖,互联网广告运营资讯站

关于广告咖
     广告咖资讯站是一个为网站运营推广信息流广告优化爱好者分享优质信息、提供互联网运营课程的站点,同时也是一个为商家提供广告投放资质查询等便捷服务的平台。
     信息源于网络,用于大众,如有侵权,请及时与我们联系!广告咖,因广告而生,因您的关注更有价值!
客户服务
 
 

服务热线:18971576794

企业外站.png

广告服务


ABUIABAEGAAgq5Db-gUoy8rtkAYwZjgp.png