码迷,mamicode.com
首页 > 移动开发 > 详细

ios本地推送demo

时间:2015-10-10 23:13:13      阅读:361      评论:0      收藏:0      [点我收藏+]

标签:

- (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本地推送demo

标签:

原文地址:http://my.oschina.net/u/2410306/blog/515417

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!