iOS 实现本地推送

来源:互联网 发布:龙腾世纪3优化补丁 编辑:程序博客网 时间:2024/04/29 22:19

第一步:创建本地推送

//创建一个本地推送UILocalNotification *notification = [[[UILocalNotification alloc] init] autorelease];//设置10秒之后NSDate *pushDate = [NSDate dateWithTimeIntervalSinceNow:10];if (notification != nil){    //设置推送时间    notification.fireDate = pushDate;    //设置时区    notification.timeZone = [NSTimeZone defaultTimeZone];    //设置重复间隔    notification.repeatInterval = kCFCalendarUnitDay;    //推送声音    notification.soundName = UILocalNotificationDefaultSoundName;    //推送内容    notification.alertBody = @"推送内容";   // 显示在icon上的红色圈中的数子    notification.applicationIconBadgeNumber = 1;    //设置userinfo 方便在之后需要撤销的时候使用    NSDictionary *info = [NSDictionary dictionaryWithObject:@"name"forKey:@"key"];    notification.userInfo = info;    //添加推送到UIApplication    UIApplication *app = [UIApplication sharedApplication];    [app scheduleLocalNotification:notification];}


第二步:接收本地推送

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification*)notification{    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"iWeibo" message:notification.alertBody delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];    [alert show];    //图标上的数字减1    application.applicationIconBadgeNumber -= 1;}


第三步:解除本地推送

//获得 UIApplicationUIApplication *app = [UIApplication sharedApplication];//获取本地推送数组NSArray *localArray = [app scheduledLocalNotifications];//声明本地通知对象UILocalNotification *localNotification;if (localArray){    for (UILocalNotification *noti in localArray)    {        NSDictionary *dict = noti.userInfo;        if (dict)        {            NSString *inKey = [dict objectForKey:@"key"];            if ([inKey isEqualToString:@"对应的key值"])            {                if (localNotification)                {                    [localNotification release];                    localNotification = nil;                }                localNotification = [noti retain];                break;            }        }    }       // 判断是否找到已经存在的相同key的推送    if (!localNotification)    {        //不存在初始化        localNotification = [[UILocalNotification alloc] init];    }        if (localNotification)    {        //不推送 取消推送        [app cancelLocalNotification:localNotification];        [localNotification release];        return;    }}


0 0
原创粉丝点击