ios 알림 메커니즘
6017 단어 Objective-C
ios 알림 체 제 는 ios 메시지 전달 체제 의 일부분 으로 ios 메시지 전달 체제 에 대해 좋 은 박문 이 있 습 니 다.http://www.cocoachina.com/applenews/devnews/2013/1216/7543.html
[/size]
IOS 에는 이벤트 가 발생 하 는 기능 도 있 는데 그것 이 바로 알림 이다.알림 을 통 해 일정한 조건 하에 서 응답 을 촉발 할 수 있 는 이벤트 입 니 다.안 드 로 이 드 의 방송 메커니즘 (Broadcase Receiver) 과 유사 하여 알림 (방송) 을 받 으 면 지정 한 방법 을 실행 할 수 있 습 니 다. NSNotificationCenter 를 통 해 알림 대상 을 가 져 오고 알림 을 등록 하고 사용 합 니 다.
iOS 에서 응용 프로그램 은 두 가지 서로 다른 Notification 종류, 로 컬 과 원 격 으로 나 뉜 다. 1. 로 컬 UILocalNotificaiton 사용 로 컬 Notification 은 iOS 에서 NotificationManager 를 통일 적 으로 관리 합 니 다. 봉 인 된 로 컬 Notification 대상 을 시스템 Notification 관리 체제 대기 열 에 넣 으 면 시스템 은 지정 한 시간 에 로 컬 Notification 을 자극 하고 Notification 을 처리 하 는 방법 만 설계 하면 전체 Notification 절 차 를 완성 합 니 다. 로 컬 Notification 이 사용 하 는 대상 은 UILocalNotification 이 며, UILocalNotification 의 속성 은 Notification 을 처리 하 는 데 필요 한 모든 내용 을 포함 합 니 다.UILocalNotification 의 속성 은 fireDate, timeZone, repeatInterval, repeatCalendar, alertBody, alertAction, hasAction, alertLaunchImage, applicationIconBadgeNumber, soundName 과 userInfo 가 있 습 니 다.
Demo:
//
UILocalNotification *notification=[[UILocalNotification alloc] init];
if (notification!=nil) {
NSDate *now=[NSDate new];
notification.fireDate=[now dateByAddingTimeInterval:10];//10
notification.repeatInterval=0;// ,kCFCalendarUnitWeekday
notification.timeZone=[NSTimeZone defaultTimeZone];
notification.applicationIconBadgeNumber=1; //
notification.soundName= UILocalNotificationDefaultSoundName;// , alarm.soundName = @"myMusic.caf"
// 2
notification.alertBody=@" ";//
notification.alertAction = @" "; //
//notification.hasAction = NO; // , no alertAction
// NSDictionary *infoDict = [NSDictionary dictionaryWithObject:@"someValue" forKey:@"someKey"];
//notification.userInfo = infoDict; //
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
}
[notification release];
취소 알림
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
application.applicationIconBadgeNumber = 0;
// Add the view controller's view to the window and display.
[window addSubview:viewController.view];
[window makeKeyAndVisible];
return YES;
}
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
//
application.applicationIconBadgeNumber = 0;
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
//
application.applicationIconBadgeNumber = 0;
}
UILocalNotification 을 등록 하려 면 UILocalNotification 대상 을 설정 한 후 시스템 Notification 처리 대기 열 에 설 치 된 UILocalNotification 대상 을 등록 해 야 합 니 다.UILocalNotification * localNotification 을 등록 하 는 방법 은 다음 과 같 습 니 다. [[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; 어떤 때 는 Notification 을 직접 자극 해 야 할 수도 있 습 니 다. 같은 시간 에 자극 하 는 것 이 아니 라 다음 과 같은 방식 으로 설 치 된 Notification 을 직접 촉발 할 수 있 습 니 다. [[UIApplication sharedApplication] presentLocalNotificationNow:localNotification]; UILocalNotification 을 처리 합 니 다. 알림 상자 동작 단 추 를 누 르 면 실행 을 시작 할 때 - (BOOL) application: didFinishLaunching With Options: 이 application delegate 방법 에서 처리 할 수 있 습 니 다.최근 처리 되 지 않 은 Notification 으로 다음 과 같이 불 러 올 수 있 습 니 다. UILocalNotification * localNotif=[launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]; 응용 프로그램 이 실행 중인 경우 응용 프로그램 Delegate 에 덮어 쓰 는 방법 - (void) 응용 프로그램: didReceiveLocal Notification: 를 통 해 Notification 을 처리 할 수 있 습 니 다.방법의 두 번 째 매개 변 수 는 UILocal Notification 대상 이 며, 대상 이 가지 고 있 는 userInfo 만 처리 하여 응답 하 는 동작 을 처리 합 니 다.UILocalNotification 을 취소 하면 등 록 된 Notification 을 다음 과 같은 두 가지 방법 으로 취소 할 수 있 습 니 다. 첫 번 째 방법 은 지정 한 Notification 을 직접 취소 할 수 있 습 니 다. 두 번 째 방법 은 등 록 된 Notification 을 함께 취소 합 니 다. [[UIApplication sharedApplication] cancelLocalNotification:localNotification]; [[UIApplication sharedApplication] cancelAllLocalNotification]; 2. NSNotificationCenter 메시지 통신 메커니즘 소개 ---프로그램 에서 서로 다른 종류의 정보 통신 을 제공 하기 위해 설 치 된 것 이다. 등록 알림: 어디서 메 시 지 를 받 아야 합 니까? [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mytest:) name:@" mytest" object:nil]; 매개 변수 소개: addObserver: 관찰자, 즉 어디서 통 지 를 받 습 니까? selector: 알림 을 받 은 후 어떤 방법 을 호출 합 니까? name: 알림 의 이름 이자 알림 의 유일한 표시 입 니 다. 컴 파일 러 는 이 를 통 해 알림 을 찾 을 수 있 습 니 다. 알림 보 내기: 관찰자 처 의 방법 을 호출 하 다. [[NSNotificationCenter defaultCenter] postNotificationName:@"mytest" object:searchFriendArray]; 인자: post NotificationName: 알림 의 이름 이자 알림 의 유일한 표시 입 니 다. 컴 파일 러 는 이 를 통 해 알림 을 찾 습 니 다. object: 전달 하 는 매개 변수 등록 방법의 작성 방법: - (void) mytest: (NSNotification *) notification { id obj = [notification object]; / 전달 대상 가 져 오기}
:
//
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
//
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
원 격 알림:http://www.cocoachina.com/newbie/tutorial/2012/0104/3827.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PreferenceBundle에서 오른쪽 상단에 Respring 버튼을 클릭합니다.만나서 반갑습니다, Minazuki라고합니다. 프로필 이름 : Minazuki_dev Twitter : Repo : 아직 중학생이므로 말이 이상한 곳이 있습니다만 용서해 주세요… 🙏 theos (Mac이든 단품이든 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.