iOS之本地推送(前台模式与后台模式)

#import "AppDelegate.h"

#import "GlobalDefine.h" 

@interface AppDelegate ()

 

@end

@implementation AppDelegate

  

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

    

    // 判断是否是8.0以上

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

        UIMutableUserNotificationCategory *category = [[UIMutableUserNotificationCategory alloc] init];

        category.identifier = NotificationIdentifier;

        

        UIMutableUserNotificationAction *foregroundAction = [[UIMutableUserNotificationAction alloc] init];

        foregroundAction.identifier = foregroundActionidentifier;

        foregroundAction.title = @"前台模式";

        foregroundAction.activationMode = UIUserNotificationActivationModeForeground;

        

        UIMutableUserNotificationAction *backgroundAction = [[UIMutableUserNotificationAction alloc] init];

        

        backgroundAction.identifier = backgroundActionidentifier;

        backgroundAction.title = @"后台模式";

        backgroundAction.activationMode = UIUserNotificationActivationModeBackground;

        

        [category setActions:@[foregroundAction, backgroundAction] forContext:UIUserNotificationActionContextDefault];

        

        NSSet *set = [NSSet setWithObjects:category, nil];

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

        [[UIApplication sharedApplication] registerUserNotificationSettings:settings];

    }    

    return YES;

}

 

- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo withResponseInfo:(NSDictionary *)responseInfo completionHandler:(void (^)())completionHandler {    

    if ([identifier isEqualToString:foregroundActionidentifier]) {

        NSLog(@"ios9点击了前台模式");

    }

    completionHandler();

}

@end

______________________________________华丽的分割线_________________________________________________

 

#import "ViewController.h"

#import "GlobalDefine.h"

@interface ViewController ()

@end

@implementation ViewController

 

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {    

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

    notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:5]; // 推送时间

    notification.alertTitle = @"推送";  // 推送标题

    notification.alertBody = @"推送内容"; // 推送的内容

    notification.category = NotificationIdentifier;

    [[UIApplication sharedApplication] scheduleLocalNotification:notification];

@end

 

______________________________________华丽的分割线_________________________________________________

 

#ifndef GlobalDefine_h

#define GlobalDefine_h

#define NotificationIdentifier @"NotificationIdentifier"

#define backgroundActionidentifier @"backgroundAction.identifier"

#define foregroundActionidentifier @"foregroundAction.identifier"

#endif /* GlobalDefine_h */

 

PS: 最下面的 #ifndef GlobalDefine_h 头文件

可以全部复制进去运行, 

 

转载于:https://www.cnblogs.com/SingCnblogs/p/5124334.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值