您的位置:首页 > 移动开发 > IOS开发

ios本地推送demo

2016-08-04 16:18 351 查看
摘要: ios中推送分为本地推送与远程推送,本地推送无需网络,模拟器都可演示,而远程推送需要网络并且需要真机测试
http://www.jianshu.com/p/b805097650d1远程推送的网址值得一看
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
//应用图标数字
application.applicationIconBadgeNumber=6;

//申请用户的许可
float version=[[[UIDevice currentDevice]systemVersion]floatValue];
if (version>8.0) {
UIUserNotificationSettings *setting=[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeSound|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil];
[[UIApplication sharedApplication]registerUserNotificationSettings:setting];
}
UILocalNotification *localNotification=[launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
if (localNotification!=nil) {
[self processLocationNotification:localNotification];
}

return YES;
}
- (void)processLocationNotification:(UILocalNotification *)localNotification{
UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:@"lanchApp" message:@"loc" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
}

//注册设置提醒后   调用的代理方法
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings{
if (notificationSettings.types!=UIUserNotificationTypeNone) {
//注册本地推送  首先是生成UILocalNotification对象
UILocalNotification *localNotification=[[UILocalNotification alloc]init];
//提示触发的时间
localNotification.fireDate=[NSDate dateWithTimeIntervalSinceNow:5];
//提示推送的内容
localNotification.alertBody=@"这是一个本地推送测试";
localNotification.repeatInterval=3;
localNotification.repeatInterval=NSCalendarUnitMinute;
//定制消息到来时候播放的声音文件  一定要在Bunddle内,而且声音的持续时间不能超过30s
localNotification.soundName=@"CAT2.WV";
//设置系统角标
localNotification.applicationIconBadgeNumber=6;
//注册本地通知到系统中,这样系统到指定的时间会触发该通知
[[UIApplication sharedApplication]scheduleLocalNotification:localNotification];
}
}
//当程序运行在后台的时候或者程序没有启动,,当注册的本地通知到达时候,ios会弹框并且播放你设置的声音
//当应用程序运行在前台的时候会调用该代理方法  不会播放声音也不会弹框
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{
//判断应用程序状态来决定是否弹框
if (application.applicationState == UIApplicationStateActive) {
UIAlertView *alterView = [[UIAlertView alloc]initWithTitle:@"本地推送" message:notification.alertBody delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil];
[alterView show];
}else if (application.applicationState == UIApplicationStateInactive)
{
NSLog(@"UIApplicationStateInactive");
}else{
//background
NSLog(@"UIApplicationStateBackground");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iOS 本地推送