IOS之本地推送

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

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

    //2.设置本地通知的相应属性

    //通知时间

    localNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:5];

    //通知内容

    localNote.alertBody = @" 吃了吗";

    //锁屏时的动作标题

    localNote.alertAction = @"昭君是小狗";

    //设置点击通知时的启动图片

     localNote.alertLaunchImage = @"{37E039CC-F171-70EC-1261-318DB195289E}.png";

    //设置音效名

    localNote.soundName = UILocalNotificationDefaultSoundName;

    //设置app图标数字

    localNote.applicationIconBadgeNumber = 4;

    //设置通知的附加信息

    localNote.userInfo = @{@"type":@"1"};

    //3.调度通知

    [[UIApplication sharedApplication]scheduleLocalNotification:localNote];


以上步骤写完之后并不能成功推送 还需要进入appdelegate里面进行权限申请

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

    self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

    [self.window makeKeyAndVisible];

    self.window.rootViewController = [[ViewController alloc]init];

    //获取到授权内容

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

    //使用application对象授权

    [application registerUserNotificationSettings:setting];


   如果关闭程序 点击通知消息进入程序的话 就需要在这里进行代码设置

    //如果launchOptionsnil,就代表正常启动,如果不为空,就代表是点击通知启动的

    if (launchOptions) {

     //找到推送的通知

        UILocalNotification *localNote = launchOptions[UIApplicationLaunchOptionsLocalNotificationKey];

        if ([localNote.userInfo[@"type"] isEqualToString:@"1"]) {

            //判断如果和我传的值一样的话让它随便跳转一个界面

            [self.window.rootViewController presentViewController:[[MyViewController alloc]init] animated:YES completion:nil];

            

        }

    }

    return YES;

}


如果程序在后台运行 点击通知消息进入程序的话 在这里设置相应代码

//点击通知进入前台和在前台时调用

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

    //判断什么情况下接收到的通知

    if (application.applicationState ==UIApplicationStateInactive) {

        //判断接收到的通知类型

        if ([notification.userInfo[@"type"] isEqualToString:@"1"]) {

            

            [self.window.rootViewController presentViewController:[[MyViewController alloc]init] animated:YES completion:nil];

            

        }


    }

       NSLog(@"%@",notification.userInfo);

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值