美文网首页
ISO本地推送实现方法及代码

ISO本地推送实现方法及代码

作者: 烈酒暖心i | 来源:发表于2017-08-22 14:49 被阅读0次

    APPDelegate需要实现的代码为:

    - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification

    {

    // 如果应用程序在前台,将应用程序图标上红色徽标中数字设为0

    application.applicationIconBadgeNumber = 0;

    // 使用UIAlertView显示本地通知的信息

    [[[UIAlertView alloc] initWithTitle:@"收到通知"

    message:notification.alertBody

    delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil] show];

    }

    控制器需要实现的代码为:

    编辑一个UIApplication *app;对象 并且初始化

    app = [UIApplication sharedApplication];

    设置一个按钮实现以下代码

    - (IBAction)KaiGuan:(id)sender

    {

    UISwitch * swich = (UISwitch *)sender;

    if(swich.on)

    {

    if([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)])

    {

    [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];

    }

    //创建一个本地通知

    UILocalNotification * notification = [[UILocalNotification alloc]init];

    //设置一个通知触发时间

    notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:5];

    //设置一个通知时区

    notification.timeZone = [NSTimeZone defaultTimeZone];

    // 设置通知的重复发送的事件间隔

    notification.repeatInterval = kCFCalendarUnitHour;

    // 设置通知的声音

    notification.soundName = @"gu.mp3";

    //通知标题

    notification.alertTitle=@"本地通知";

    // 设置当设备处于锁屏状态时,显示通知的警告框下方的title

    notification.alertAction = @"打开";

    // 设置通知是否可显示Action

    notification.hasAction = YES;

    // 设置通过通知加载应用时显示的图片

    notification.alertLaunchImage = @"logo.png";

    // 设置通知内容

    notification.alertBody = @"本地推送通知";

    // 设置显示在应用程序上红色徽标中的数字

    notification.applicationIconBadgeNumber = 1;

    // 设置userinfo,用于携带额外的附加信息。

    NSDictionary *info = @{@"bys": @"key"};

    notification.userInfo = info;

    // 调度通知

    [app scheduleLocalNotification:notification];  // ①

    }

    else

    {

    NSArray * localArray = [app scheduledLocalNotifications];

    if(localArray)

    {

    for (UILocalNotification * noti in localArray)

    {

    NSDictionary * dic = noti.userInfo;

    if(dic)

    {

    NSString * inkey = [dic objectForKey:@"key"];

    if([inkey isEqualToString:@"bys"])

    {

    [app cancelLocalNotification:noti];

    }

    }

    }

    }

    }

    }

    相关文章

      网友评论

          本文标题:ISO本地推送实现方法及代码

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