美文网首页
OC_本地推送

OC_本地推送

作者: figure_ai | 来源:发表于2016-12-20 14:59 被阅读0次

    一、本地推送的介绍

    • 直接由应用程序给用户发出通知;
    • 需要用到的重要的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_本地推送

          本文链接:https://www.haomeiwen.com/subject/mhaxvttx.html