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];
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知...
    莫离_焱阅读 6,543评论 1 8
  • 首先 我们先拖拽一个switch控件 并将其与 ViewController.m 关联,以方便我们以下的操作 1...
    J_mine阅读 489评论 0 0
  • 推送通知注意:这里说的推送通知跟NSNotification有所区别NSNotification是抽象的,不可见的...
    醉叶惜秋阅读 1,535评论 0 3
  • #乐悠游# 行程第二日是市区游,我家公子安排的第一站是新加坡国家画廊(每到一个城市参观博物馆是我们家自由行的必备节...
    千年一眼阅读 362评论 3 5
  • 不知道天真烂漫太多了点是好事还是坏事。不知道这个世界会不会有人喜欢这样单纯如小孩的性格。(我知道我的妈妈并不喜欢。...
    Jeremiah潇湘阅读 185评论 0 0