//联系人:石虎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];//
}
}
}
}
}
}