守望者--AIR技术交流

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ANE FlasCC 炼金术
查看: 3328|回复: 0

[Object-C/Swift] iOS本地推送

[复制链接]
  • TA的每日心情
    擦汗
    2018-4-10 15:18
  • 签到天数: 447 天

    [LV.9]以坛为家II

    1742

    主题

    2094

    帖子

    13万

    积分

    超级版主

    Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

    威望
    562
    贡献
    29
    金币
    52623
    钢镚
    1422

    开源英雄守望者

    发表于 2015-4-7 15:49:32 | 显示全部楼层 |阅读模式
    第一步:创建本地推送

    1. // 创建一个本地推送
    2. UILocalNotification *notification = [[[UILocalNotification alloc] init] autorelease];
    3. //设置10秒之后
    4. NSDate *pushDate = [NSDate dateWithTimeIntervalSinceNow:10];
    5. if (notification != nil) {
    6.     // 设置推送时间
    7.     notification.fireDate = pushDate;
    8.     // 设置时区
    9.     notification.timeZone = [NSTimeZone defaultTimeZone];
    10.     // 设置重复间隔
    11.     notification.repeatInterval = kCFCalendarUnitDay;
    12.     // 推送声音
    13.     notification.soundName = UILocalNotificationDefaultSoundName;
    14.     // 推送内容
    15.     notification.alertBody = @"推送内容";
    16.     //显示在icon上的红色圈中的数子
    17.     notification.applicationIconBadgeNumber = 1;
    18.     //设置userinfo 方便在之后需要撤销的时候使用
    19.     NSDictionary *info = [NSDictionary dictionaryWithObject:@"name"forKey:@"key"];
    20.     notification.userInfo = info;
    21.     //添加推送到UIApplication      
    22.     UIApplication *app = [UIApplication sharedApplication];
    23.     [app scheduleLocalNotification:notification];
    24.    
    25. }
    复制代码


    第二步:接收本地推送
    1. - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification*)notification{
    2.     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"iWeibo" message:notification.alertBody delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];
    3.     [alert show];
    4.     // 图标上的数字减1
    5.     application.applicationIconBadgeNumber -= 1;
    6. }
    复制代码


    第三步:解除本地推送

    1. // 获得 UIApplication
    2. UIApplication *app = [UIApplication sharedApplication];
    3. //获取本地推送数组
    4. NSArray *localArray = [app scheduledLocalNotifications];
    5. //声明本地通知对象
    6. UILocalNotification *localNotification;
    7. if (localArray) {
    8.     for (UILocalNotification *noti in localArray) {
    9.         NSDictionary *dict = noti.userInfo;
    10.         if (dict) {
    11.             NSString *inKey = [dict objectForKey:@"key"];
    12.             if ([inKey isEqualToString:@"对应的key值"]) {
    13.                 if (localNotification){
    14.                     [localNotification release];
    15.                     localNotification = nil;
    16.                 }
    17.                 localNotification = [noti retain];
    18.                 break;
    19.             }
    20.         }
    21.     }
    22.    
    23.     //判断是否找到已经存在的相同key的推送
    24.     if (!localNotification) {
    25.         //不存在初始化
    26.         localNotification = [[UILocalNotification alloc] init];
    27.     }
    28.    
    29.     if (localNotification) {
    30.         //不推送 取消推送
    31.         [app cancelLocalNotification:localNotification];
    32.         [localNotification release];
    33.         return;
    34.     }
    35. }
    复制代码


    本文来自:http://blog.sina.com.cn/s/blog_621403ef01010zmp.html
    守望者AIR技术交流社区(www.airmyth.com)
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    
    关闭

    站长推荐上一条 /4 下一条

    QQ|手机版|Archiver|网站地图|小黑屋|守望者 ( 京ICP备14061876号

    GMT+8, 2024-3-29 18:32 , Processed in 0.042583 second(s), 32 queries .

    守望者AIR

    守望者AIR技术交流社区

    本站成立于 2014年12月31日

    快速回复 返回顶部 返回列表