关于本地推送的使用处理UILocalNotification

UILocalNotification

有些时候我们需要处理一些本地推送,小细节的处理.

//判断他不在前台活跃的时候才发推送
 if ([UIApplication sharedApplication].applicationState != UIApplicationStateActive) {
                    //本地推送
                    UILocalNotification *localNotification = [[UILocalNotification alloc] init];
                    localNotification.alertBody = @"您刚完成了一段行程,快去看看分数吧!";
                    localNotification.alertAction = @"您刚完成了一段行程,快去看看分数吧!";
                    localNotification.applicationIconBadgeNumber = 1;
                    localNotification.soundName = UILocalNotificationDefaultSoundName;
                    NSString * tripId = [NSString stringWithFormat:@"%ld",(long)((Trip *)extras).startTimestamp];
                    localNotification.userInfo = @{@"tripId":tripId};
                    [[UIApplication sharedApplication] presentLocalNotificationNow:localNotification];
                    NSLog(@"T_TRIP_FINISHED已经发送推送成功%@ --》userInfo%@",extras,localNotification.userInfo);
                }

请不要忘了设置通知类型及声音数字提示,还有授权.还有不要忘了当点击定不推送为空的情况排除

 UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert categories:nil];
    // 授权通知
    [[UIApplication sharedApplication] registerUserNotificationSettings:setting];
      // 通知跳转,app通过点击顶部推送启动app时,获取推送,如果不为空,则执行推送方法
    UILocalNotification* localNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
    if (localNotification) {// 如果通知不为空,则点击了推送启动app
        [self checkNotification:localNotification.userInfo isLaunch:YES];
    }
    -(void)checkNotification:(NSDictionary *)userInfo isLaunch:(BOOL)isLaunch{
    //判断通知所携带的数据是否存在
    if (tripId && tripId.length > 0) {
        if (isLaunch) {
            //点击通知启动app,跳转到该通知对应的界面

        }else{
            //点击通知重新激活app,跳转到对应的界面

}

当然也需要去改变红点数量的变化显示及隐藏 别忘了

- (void)applicationDidEnterBackground:(UIApplication *)application {
     [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
    //设置应用程序图片右上角的数字(如果想要取消右上角的数字, 直接把这个参数值为0)
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值