代理方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
/*
UIUserNotificationTypeNone = 0, 无类型(不给用户发通知)
UIUserNotificationTypeBadge = 1 << 0, 是否可以改变应用图标右上角的提示数字
UIUserNotificationTypeSound = 1 << 1, 该通知是否会有声音
UIUserNotificationTypeAlert = 1 << 2, 是否有弹出提示
*/
if ([UIDevice currentDevice].systemVersion.doubleValue >= 8.0) {
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound categories:nil];
[application registerUserNotificationSettings:settings];
}
if (launchOptions[UIApplicationLaunchOptionsLocalNotificationKey]) {
// 跳转
UILabel *label = [[UILabel alloc] init];
label.frame = CGRectMake(0, 300, 300, 300);
label.backgroundColor = [UIColor redColor];
label.text = [NSString stringWithFormat:@"%@", launchOptions];
label.font = [UIFont systemFontOfSize:14];
label.numberOfLines = 0;
[self.window.rootViewController.view addSubview:label];
}
return YES;
}
/**
* 点击通知打开应用的时候会执行该方法
* 应用在前台的时候,收到通知也会执行该方法
*
* @param notification 通知
*/
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
UILabel *label = [[UILabel alloc] init];
label.frame = CGRectMake(0, 0, 300, 300);
label.backgroundColor = [UIColor redColor];
label.text = [NSString stringWithFormat:@"%@", notification];
label.font = [UIFont systemFontOfSize:14];
label.numberOfLines = 0;
[self.window.rootViewController.view addSubview:label];
// if (application.applicationState == UIApplicationStateBackground) {
//
// }
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return YES;
}
/**
* 点击按钮后添加本地通知
*/
- (IBAction)addLocalNote {
/*
@property(nonatomic,copy) NSDate *fireDate;
@property(nonatomic,copy) NSTimeZone *timeZone;
@property(nonatomic) NSCalendarUnit repeatInterval;
@property(nonatomic,copy) NSCalendar *repeatCalendar;
@property(nonatomic,copy) CLRegion *region NS_AVAILABLE_IOS(8_0);
@property(nonatomic,assign) BOOL regionTriggersOnce NS_AVAILABLE_IOS(8_0);
@property(nonatomic,copy) NSString *alertBody;
@property(nonatomic) BOOL hasAction;
@property(nonatomic,copy) NSString *alertAction;
@property(nonatomic,copy) NSString *alertLaunchImage;
@property(nonatomic,copy) NSString *soundName; UILocalNotificationDefaultSoundName
@property(nonatomic) NSInteger applicationIconBadgeNumber;
@property(nonatomic,copy) NSDictionary *userInfo;
*/
// 1.创建一个本地通知
UILocalNotification *localNote = [[UILocalNotification alloc] init];
// 1.1.设置通知发出的时间
localNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:5];
// 1.2.设置通知发出的内容
localNote.alertBody = @"吃饭了吗?";
// 1.3.是否弹出提示框
localNote.hasAction = YES;
// 1.4.设置提示框
localNote.alertAction = @"赶紧查看";
// 1.5.设置启动的图片
localNote.alertLaunchImage = @"1111";
// 1.6.设置启动的音效
localNote.soundName = UILocalNotificationDefaultSoundName;
// 1.7.设置应用图标提醒的数字
localNote.applicationIconBadgeNumber = 999;
// 1.8.如果想将通知的信息传递过去,必须使用userInfo属性
localNote.userInfo = @{@"msg" : @"吃饭了吗", @"date" : localNote.fireDate};
// 2.调度通知
[[UIApplication sharedApplication] scheduleLocalNotification:localNote];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
}
- (IBAction)removeLocalNote {
[[UIApplication sharedApplication] cancelAllLocalNotifications];
// [UIApplication sharedApplication] cancelLocalNotification:(UILocalNotification *)
}
本文将指导您如何在iOS应用中创建并发送本地通知,包括设置通知的触发条件、显示内容、声音和应用图标提醒等。通过实例演示,帮助开发者掌握本地通知的实现方法。

4024

被折叠的 条评论
为什么被折叠?



