iOS 클릭 푸 시 메시지 건 너 뛰 기 처리

3007 단어 ios푸 시점프
사용자 가 알림 메 시 지 를 클릭 하여 응용 프로그램 에 들 어 갈 때

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
launchOptions
메시지 전송 userInfo 메시지 가 있 습 니 다.이 때 저 희 는 통과 할 수 있 습 니 다.

NSDictionary* remoteNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 
푸 시 메시지 내용 을 얻 었 습 니 다.reoteNotification 이 비어 있 지 않 으 면 사용자 가 푸 시 메 시 지 를 통 해 들 어 온 다 는 것 을 설명 합 니 다.속성 을 설명 할 수 있 습 니 다.

@property (nonatomic) BOOL isLaunchedByNotification; 
사용자 가 알림 메 시 지 를 클릭 하여 본 응용 프로그램 에 들 어 갈 지 여 부 를 표시 하 는 데 사용 합 니 다.이때

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo 
반드시 호출 됩 니 다.iOS 7 사용 가능

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 
이 방법 이 호출 되 었 을 때 MainViewController 가 초기 화 되 었 기 때문에 저 희 는 MainViewController 에 추 송 된 메시지 의 감청 을 등록 하여 해당 하 는 보 기 를 보 여 드릴 수 있 습 니 다.다음 과 같 습 니 다.

//        ,           
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(presentView:) name:@"PresentView" object:nil];//                。            ,     
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showNotification:) name:@"Notification" object:nil]; 

그래서 AppDelegate 의 didReceiveRemote Notification 에서 isLaunched ByNotification 을 판단 하여 서로 다른 전시 방법 을 알려 줄 수 있 습 니 다.
뇌 는 푸 시 가 왔 을 때 진동 소 리 를 멈 추 지 않 는 코드 를 재생 합 니 다.(음악 을 재생 하 는 것 이 아 닙 니 다)
우선 헤더 파일 포함

#import <AudioToolbox/AudioToolbox.h> 
소 리 를 등록 합 니 다(이 예 에서 기본 1007 을 직접 사용 합 니 다)

@property (nonatomic, assign) SystemSoundID soundID;
NSString *path = [[NSBundle mainBundle] pathForResource:soundName ofType:nil];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:path], &_soundID);
AudioServicesAddSystemSoundCompletion(_soundID, NULL, NULL, soundCompleteCallback, NULL); //           
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
AudioServicesPlaySystemSound(_soundID);
// block    AudioServicesAddSystemSoundCompletion(_soundID, NULL, NULL, soundCompleteCallback, NULL);     
void soundCompleteCallback(SystemSoundID soundID,void * clientData)
{
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
AudioServicesPlaySystemSound(soundID);
}
//     
-(void)stopAlertSoundWithSoundID:(SystemSoundID)soundID 
{
AudioServicesDisposeSystemSoundID(kSystemSoundID_Vibrate);
AudioServicesDisposeSystemSoundID(soundID);
AudioServicesRemoveSystemSoundCompletion(soundID);
}
이상 의 내용 은 편집장 님 께 서 소개 해 주신 iOS 클릭 푸 시 메시지 점프 처리 에 관 한 내용 입 니 다.도움 이 되 셨 으 면 좋 겠 습 니 다!

좋은 웹페이지 즐겨찾기