ios本地推送demo

- (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");
    }

    
}


转载于:https://my.oschina.net/u/2410306/blog/515417

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值