iOS 本地通知

//联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄

/**

注意:本地通知 直接拷贝到AppDelegate.h文件中,和主控制器中即可完成

*/

效果:

=======================================================

#import"AppDelegate.h"

@implementationAppDelegate

//只有当应用在前台时,该方法才会被调用

- (void)application:(UIApplication*)application

didReceiveLocalNotification:(UILocalNotification*)notification{

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

application.applicationIconBadgeNumber=0;

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

[[[UIAlertViewalloc]initWithTitle:@"收到通知"

message:notification.alertBody

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

}

=========================主控制器==============================

XIB 连线图:

#import"ViewController.h"

@interfaceViewController ()

{

UIApplication*app;

}

@end

@implementationViewController

- (void)viewDidLoad

{

[superviewDidLoad];

app= [UIApplicationsharedApplication];

}

- (IBAction)changed:(id)sender

{

UISwitch* sw = (UISwitch*) sender;

if(sw.on)

{

if([UIApplicationinstancesRespondToSelector:@selector(registerUserNotificationSettings:)])

{

[[UIApplicationsharedApplication]registerUserNotificationSettings:[UIUserNotificationSettingssettingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSoundcategories:nil]];

}

//创建一个本地通知

UILocalNotification*notification = [[UILocalNotificationalloc]init];

//设置通知的触发时间

notification.fireDate= [NSDatedateWithTimeIntervalSinceNow:10];

//设置通知的时区

notification.timeZone= [NSTimeZonedefaultTimeZone];

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

notification.repeatInterval=kCFCalendarUnitHour;

//设置通知的声音

notification.soundName=@"gu.mp3";

//通知标题

notification.alertTitle=@"我是标题";

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

notification.alertAction=@"打开";

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

notification.hasAction=YES;

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

notification.alertLaunchImage=@"logo.png";

//设置通知内容

notification.alertBody=@"亲,好几天????,想念你了!";

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

notification.applicationIconBadgeNumber=10;

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

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

notification.userInfo= info;

//调度通知

[appscheduleLocalNotification:notification];//①

}

else

{

//获取所有处于调度中本地通知数组

NSArray*localArray = [appscheduledLocalNotifications];

if(localArray)

{

for(UILocalNotification*notiinlocalArray)

{

NSDictionary*dict = noti.userInfo;

if(dict)

{

//如果找到要取消的通知

NSString*inKey = [dictobjectForKey:@"key"];

if([inKeyisEqualToString:@"bys"])

{

//取消调度该通知

[appcancelLocalNotification:noti];//

}

}

}

}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 首先在 appdelegate 中添加 - (void)application:(UIApplication *)...
    繁华落尽终是殇阅读 378评论 0 0
  • 一、苹果中的几种通知 1、广播通知(NSNotificationCenter) 1)实现一个对象对多个对象的通信 ...
    空白Null阅读 1,243评论 0 1
  • 概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知...
    莫离_焱阅读 6,598评论 1 8
  • 简单记录 1.注册通知 //判断是否已经注册通知 UIApplication *app = [UIApplicat...
    炎一阅读 473评论 6 0
  • 姓名:黄太平 公司:宁波大发化纤有限公司 组别:301期反省组学员 【知~学习】 1、《六项精进》读 1遍 2、《...
    黄太平阅读 111评论 0 0