iOS 远程推送通知_iOS开发项目化经典教程_[共6页]
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
(3)在跳转之前,要将块代码和用户之前选择的铃声名称传入铃声页面。在块代码中接 收到用户在选择铃声界面中选择的声音文件名。实现代码如下:
//当页面跳转时调用 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
APNs
图 7-13 请求设备令牌
从图 7-13 可以看出,请求设备令牌需要 3 个步骤,具体如下。 (1)程序向设备注册要使用远程推送,设备收到程序的注册申请后,连接 APNs 并转发 请求,这个过程一般在程序安装时进行。 (2)APNs 生成包含了设备信息和程序信息的设备令牌,使用令牌密钥对令牌加密,然后 将设备令牌返回给设备和程序。
//判断是否跳转到选择声音页面 if ([segue.identifier isEqualToString:@"selectSound"]) {
SoundViewController *vc = segue.destinationViewController; //设置 block vc.changeSound = ^(NSString *soundName){
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{ //当单击选择表格的“铃声”行时,执行跳转 if (indexPath.row == 1){ [self performSegueWithIdentifier:@"selectSound" sender:nil]; }
Hale Waihona Puke APNs图 7-12 APNs 远程推送
以上是对远程推送通知的简述,它的详细步骤包含以下两个阶段。 第一个阶段:申请和传递设备令牌 程序要想接收远程推送通知,首先必须申请设备令牌。设备令牌包含了设备标识(UUID) 和程序标识(Bundle Identifier)信息,由设备和程序申请,APNs 加密生成并返回。接下来, 通过一张图来描述申请设备令牌的具体过程,如图 7-13 所示。
if (![self.soundName isEqualToString:soundName]) { self.soundName = soundName; [self.alarmInfoTable reloadData];
} }; //将当前闹钟声音传入选择声音页面 vc.soundName = self.soundName; } }
APNs 图 7-11 APNs 远程推送
292
在图 7-11 中,程序的服务器(Provider)发送通知包给苹果的 APNs,通知包里包含了设 备令牌(Device Token)和通知的内容,APNs 验证设备令牌之后,将通知的内容远程推送到 设备上。
图 7-11 所示是单个程序使用远程推送的简单描述,但在实际应用中,往往是多个应用程 序的服务器通过 APNs 向多个设备发送远程推送通知。具体如图 7-12 所示。
291
第 7 章 推 送 机 制
7.4 iOS 远程推送通知
当用户关闭程序后,我们就无法同程序的服务器沟通,也无法从服务器上获得最新的数 据,iOS 的远程推送服务(Apple Push Notification Service,APNs)解决了这个问题。使用远 程推送,不论程序是运行还是关闭状态,只要设备联网了,就可以收到服务器推送的远程通 知。远程推送是通过苹果的 APNs 发送给设备的,具体如图 7-11 所示。
(3)在跳转之前,要将块代码和用户之前选择的铃声名称传入铃声页面。在块代码中接 收到用户在选择铃声界面中选择的声音文件名。实现代码如下:
//当页面跳转时调用 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
APNs
图 7-13 请求设备令牌
从图 7-13 可以看出,请求设备令牌需要 3 个步骤,具体如下。 (1)程序向设备注册要使用远程推送,设备收到程序的注册申请后,连接 APNs 并转发 请求,这个过程一般在程序安装时进行。 (2)APNs 生成包含了设备信息和程序信息的设备令牌,使用令牌密钥对令牌加密,然后 将设备令牌返回给设备和程序。
//判断是否跳转到选择声音页面 if ([segue.identifier isEqualToString:@"selectSound"]) {
SoundViewController *vc = segue.destinationViewController; //设置 block vc.changeSound = ^(NSString *soundName){
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{ //当单击选择表格的“铃声”行时,执行跳转 if (indexPath.row == 1){ [self performSegueWithIdentifier:@"selectSound" sender:nil]; }
Hale Waihona Puke APNs图 7-12 APNs 远程推送
以上是对远程推送通知的简述,它的详细步骤包含以下两个阶段。 第一个阶段:申请和传递设备令牌 程序要想接收远程推送通知,首先必须申请设备令牌。设备令牌包含了设备标识(UUID) 和程序标识(Bundle Identifier)信息,由设备和程序申请,APNs 加密生成并返回。接下来, 通过一张图来描述申请设备令牌的具体过程,如图 7-13 所示。
if (![self.soundName isEqualToString:soundName]) { self.soundName = soundName; [self.alarmInfoTable reloadData];
} }; //将当前闹钟声音传入选择声音页面 vc.soundName = self.soundName; } }
APNs 图 7-11 APNs 远程推送
292
在图 7-11 中,程序的服务器(Provider)发送通知包给苹果的 APNs,通知包里包含了设 备令牌(Device Token)和通知的内容,APNs 验证设备令牌之后,将通知的内容远程推送到 设备上。
图 7-11 所示是单个程序使用远程推送的简单描述,但在实际应用中,往往是多个应用程 序的服务器通过 APNs 向多个设备发送远程推送通知。具体如图 7-12 所示。
291
第 7 章 推 送 机 制
7.4 iOS 远程推送通知
当用户关闭程序后,我们就无法同程序的服务器沟通,也无法从服务器上获得最新的数 据,iOS 的远程推送服务(Apple Push Notification Service,APNs)解决了这个问题。使用远 程推送,不论程序是运行还是关闭状态,只要设备联网了,就可以收到服务器推送的远程通 知。远程推送是通过苹果的 APNs 发送给设备的,具体如图 7-11 所示。