本地推送的实现

本地推送(主要用于耗时操作,当操作完成之后可以通知给用户)

步骤如下:

1.在app delegate  didFinishLaunchingWithOptions方法中进行推送设置

推送设置(iOS8.0以后设置方法发生改变)

//版本适配问题

if ([UIDevice currentDevice].systemVersion.floatValue >= 8.0)//当前使用设备

{

//采取8.0以上的设置

/**

*  @param UIUserNotificationType 推动通知的类型(声音/文字/标示(徽章))

*  @param categories 额外设置(设置额外按钮)

*/

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

//让当前程序接收/注册推送通知设置

[application registerUserNotificationSettings:settings];

//询问用户是否允许

[application registerForRemoteNotifications];

}

2.开始推送

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

if (noti) {

//设置推送通知

//通知推送事件

//开启事件为当前时间后10秒

noti.fireDate = [[NSDate date] dateByAddingTimeInterval:10];

//重复次数

//不重复

noti.repeatInterval = 0;

//设置推送时区

noti.timeZone = [NSTimeZone defaultTimeZone];

//增加图标标示

noti.applicationIconBadgeNumber = 1;

//设置推送声音 音频声音格式要为苹果原生支持的

noti.soundName = UILocalNotificationDefaultSoundName;

//推送内容

noti.alertBody = @"ajdfjkjljhb";

//设置推送的携带详情,例如为某影片播放网址

noti.userInfo = @{@"URL":@""};

//执行推送

[[UIApplication sharedApplication] scheduleLocalNotification:noti];

}

注:通过推送进入App时会调用的方法

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

{

NSLog(@"通过推送进入APP");

NSDictionary * us = notification.userInfo;

NSLog(@"URL为:%@",us[@"URL"]);

//执行跳转

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

}


你可能感兴趣的:(本地推送的实现)