OC_本地推送

一、本地推送的介绍

  • 直接由应用程序给用户发出通知;
  • 需要用到的重要的UILocalNotification
  • 实现步骤:
    1. 注册通知(ios8.0之后的版本);
    2. 创建通知;
    3. 设置通知的内容信息:
      • 发送时间
      • 发送内容
      • 播放的音效
    4. 调度通知;
    5. 监听通知的点击;

二、代码演示

  1. (注册通知)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];
    }

你可能感兴趣的:(OC_本地推送)