您的位置:首页 > 移动开发 > IOS开发

iOS10通知(二)--发送通知

2017-03-31 15:54 393 查看
在新版本的通知框架中,苹果采用网络请求的风格,我们发送一个通知请求,然后将这个请求提交给UNUserNotificationCenter进行处理,然后我们会在 delegate 中接收到这个通知请求对应的 response,另外我们也可以在应用的 extension 中对 request 进行处理。

1、下面是发送通知的实现代码段,此处实现的是一个延时发送的通知类型,有兴趣的可以自行实现余下的两种类型UNCalendarNotificationTrigger和UNLocationNotificationTrigger

-(void)btnClicked
{
//收起键盘
[self.timeField resignFirstResponder];

//判断文本框的值是否有效
NSInteger timeValue = [self.timeField.text integerValue];
if(timeValue > 0)
{
self.label2.text = @"";

//创建通知
UNMutableNotificationContent *content = [[UNMutableNotificationContent alloc]init];
content.title = @"iOS 10通知";
content.body = @"这是一个iOS 10的消息通知...";

//创建一个触发事件
UNNotificationTrigger *trigger = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:timeValue repeats:NO];

//设置通知的唯一标识
NSString *requestIdentifer = @"timeIntervalNotification";

//创建通知的请求
UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:requestIdentifer content:content trigger:trigger];
[[UNUserNotificationCenter currentNotificationCenter] addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
if (!error) {
self.label2.text = error.localizedDescription;
}
else
{
self.label2.text = @"发送成功...";
}
}];
}
else
{
self.label2.text = @"输入的时间无效";
}
}

2、远程推送的payload内容

{
"aps":{
"alert":{
"title":"iOS 10通知",
"body":"这是一个iOS 10的消息通知..."
}
}
}
3、下面是实现后的效果图,从效果图可以看到,不管应用是在前台还是后台,均可收到通知提示



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: