美文网首页
iOS本地推送

iOS本地推送

作者: 学无止境666 | 来源:发表于2015-07-12 15:48 被阅读923次

                           iOS本地推送

    第一步:创建本地推送

    // 创建一个本地推送

    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;

    }


    第三步:解除本地推送

    // 获得 UIApplication

    UIApplication *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;

    }

    }

    相关文章

      网友评论

          本文标题: iOS本地推送

          本文链接:https://www.haomeiwen.com/subject/xusuqttx.html