一、本地推送的介绍
- 直接由应用程序给用户发出通知;
- 需要用到的重要的类:UILocalNotification
- 实现步骤:
- 注册通知(ios8.0之后的版本);
- 创建通知;
- 设置通知的内容信息:
- 发送时间
- 发送内容
- 播放的音效
- 调度通知;
- 监听通知的点击;
二、代码演示
- (注册通知)AppDelegate.m文件的didFinishLaunchingWighOptions:方法中:
//判断是否需要注册通知;
if ([[UIDevice currentDevice].systemVersion doubleValue] >= 8.0) {
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert categories:nil];
[application registerUserNotificationSettings:settings];
}
2.(创建通知)ViewController.m文件的发送通知按钮的点击方法中:
//1. 创建本地通知
UILocalNotification *localNote = [[UILocalNotification alloc] init];
//2. 设置本地通知的内容
//2.1 设置通知发出的时间
localNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:5];
//2.2设置通知的内容
localNote.alertBody = @"镇魂街更新啦";
//2.3 设置解屏滑块下Button的文字
localNote.alertAction = @"查看具体内容";
//2.4决定alertAction是否生效
localNote.hasAction = YES;
//2.5设置通知中心的标题
// localNote.alertTitle = @"1";
//2.6设置通知音效
localNote.soundName = UILocalNotificationDefaultSoundName;
//2.7设置应有程序图标右上角的提示数字
localNote.applicationIconBadgeNumber = 123;
//3.调度通知
[[UIApplication sharedApplication] scheduleLocalNotification:localNote];
NSLog(@"发送通知");
3.(监听通知的点击,应用程序没有被杀死的情况下)AppDelegate.m文件中:
//当收到一个通知时会调用该方法
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
//如果用户正在操作应用程序,不需要对通知进行处理
/*
UIApplicationStateActive : 在前台
UIApplicationStateBackground : 在后台
UIApplicationStateInactive : 从后台进入前台
*/
if (application.applicationState == UIApplicationStateActive) {
return;
}
//从后台进入前台时会执行该方法
[self jumpToVc];
}
- (void)jumpToVc
{
NSLog(@"跳转到指定页面");
}
4.(监听通知的点击,应用程序被杀死的情况下)AppDelegate.m文件的didFinishLauchingWithOpeions:方法中
//launchOptions:
//如果是正常启动,该字典为nil
//如果是通过别的方式启动应用程序,则launchOptions不为nil
if (launchOptions[UIApplicationLaunchOptionsLocalNotificationKey]) {
[self jumpToVc];
}
网友评论