本地推送(主要用于耗时操作,当操作完成之后可以通知给用户)
步骤如下:
1.在app delegate didFinishLaunchingWithOptions方法中进行推送设置
推送设置(iOS8.0以后设置方法发生改变)
//版本适配问题
if ([UIDevice currentDevice].systemVersion.floatValue >= 8.0)//当前使用设备
{
//采取8.0以上的设置
/**
* @param UIUserNotificationType 推动通知的类型(声音/文字/标示(徽章))
* @param categories 额外设置(设置额外按钮)
*/
UIUserNotificationSettings * settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil];
//让当前程序接收/注册推送通知设置
[application registerUserNotificationSettings:settings];
//询问用户是否允许
[application registerForRemoteNotifications];
}
2.开始推送
UILocalNotification * noti = [[UILocalNotification alloc]init];
if (noti) {
//设置推送通知
//通知推送事件
//开启事件为当前时间后10秒
noti.fireDate = [[NSDate date] dateByAddingTimeInterval:10];
//重复次数
//不重复
noti.repeatInterval = 0;
//设置推送时区
noti.timeZone = [NSTimeZone defaultTimeZone];
//增加图标标示
noti.applicationIconBadgeNumber = 1;
//设置推送声音 音频声音格式要为苹果原生支持的
noti.soundName = UILocalNotificationDefaultSoundName;
//推送内容
noti.alertBody = @"ajdfjkjljhb";
//设置推送的携带详情,例如为某影片播放网址
noti.userInfo = @{@"URL":@""};
//执行推送
[[UIApplication sharedApplication] scheduleLocalNotification:noti];
}
注:通过推送进入App时会调用的方法
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
NSLog(@"通过推送进入APP");
NSDictionary * us = notification.userInfo;
NSLog(@"URL为:%@",us[@"URL"]);
//执行跳转
[self.window.rootViewController presentViewController:[[PlayViewController alloc]init] animated:YES completion:nil];
}