码迷,mamicode.com
首页 > 其他好文 > 详细

消息推送——本地推送

时间:2016-03-28 21:31:12      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

消息推送分两种:

    1.本地推送(Local Notification)

    2.远程推送(Remote Notification)

消息推送的作用

    可以让APP不在前台,告知用户APP内部发生了什么

消息推送的效果

    1.没有效果

    2.横幅 在屏幕的顶部显示具体内容

    3.提醒 UIAlertController 在屏幕中间显示具体内容

    4.在锁屏的时候显示一块横幅 在手机的设置里面对它进行不同的效果设置

    5.可以更改APP图标上面显示的提醒数字 

注意:发送推送通知的时候,如果APP在前台运行,那么推送的通知不会被呈现出来 在发送通知之后,无论APP是打开,还是关闭,推送都能如期发出,但是用户不一定能如期去接收 

但在iOS8之后需要注册。

 

首先在AppDelegate.m文件里面需要判断版本信息根据版本信息是否大于8.0设置推送样式,具体代码如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

      /*

     推送通知的样式

     UIUserNotificationTypeNone   没有样式

     UIUserNotificationTypeBadge  改变应用右上角数字

     UIUserNotificationTypeSound  带声音

     UIUserNotificationTypeAlert  弹出框提示

     */

    

    //判断版本信息是否大于8.0 设置推送的样式

    if ([UIDevice currentDevice].systemVersion.doubleValue >= 8.0) {

        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories: nil];

        

        //注册通知对象

        [application registerUserNotificationSettings:settings];

    }

    

    //用作点击推送时跳转

    if (launchOptions [UIApplicationLaunchOptionsLocationKey]) {

        

        UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(100, 400, 200, 100)];

        label.text = [NSString stringWithFormat:@"%@",launchOptions];

        label.backgroundColor = [UIColor lightGrayColor];

        label.font = [UIFont systemFontOfSize:14];

        label.numberOfLines = 1;

        [self.window.rootViewController.view addSubview:label];

    }

    

    return YES;

}

 

//点击通知打开应用的时候会执行该方法 在前台收到通知的时候也会调用该方法

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{

    

    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(100, 400, 200, 100)];

    label.backgroundColor = [UIColor lightGrayColor];

    label.font = [UIFont systemFontOfSize:14];

    label.numberOfLines = 1;

    [self.window.rootViewController.view addSubview:label];

}

 

在ViewController.m文件通过button去触发本地消息发送对象,来实现本地消息推送

- (void)viewDidLoad {

    [super viewDidLoad];

   

    //通过Button去触发本地消息发送对象

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

    button.frame = CGRectMake(100, 100, 100, 50);

    [button setTitle:@"添加通知" forState:UIControlStateNormal];

    button.backgroundColor = [UIColor brownColor];

    button.layer.cornerRadius = 6;

    [button addTarget:self action:@selector(doit:) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:button];

 

    //移除消息推送

    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];

    button1.frame = CGRectMake(100, 200, 100, 50);

    [button1 setTitle:@"移除通知" forState:UIControlStateNormal];

    button1.backgroundColor = [UIColor brownColor];

    button1.layer.cornerRadius = 6;

    [button1 addTarget:self action:@selector(remove) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:button1];

}

 

- (void)doit:(UIButton *)sender{

    

    //1.创建一个本地通知对象

    UILocalNotification *LocalNotification = [[UILocalNotification alloc]init];

    

    //2.设置具体属性

    

    //2.1设置通知发送的时间

    LocalNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:3];

    

    //2.2设置通知发送的内容

    LocalNotification.alertBody = @"主人来消息了";

    

    //2.3设置是否显示提示框

    LocalNotification.hasAction = YES;

    

    //2.4设置提示框

    LocalNotification.alertAction = @"快来查看";

    

    //2.5设置APP提示的数字

    LocalNotification.applicationIconBadgeNumber = 123;

    

    //2.6设置应用提示的声音

    LocalNotification.soundName = UILocalNotificationDefaultSoundName;

    

    //3.去调度本地推送通知

    [[UIApplication sharedApplication]scheduleLocalNotification:LocalNotification];

    [[UIApplication sharedApplication]setApplicationIconBadgeNumber:0];

}

  

//移除消息推送的方法

- (void)remove{

       [[UIApplication sharedApplication]cancelAllLocalNotifications];

}

 

消息推送——本地推送

标签:

原文地址:http://www.cnblogs.com/chengy134/p/5330482.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!