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

좋은 웹페이지 즐겨찾기