2015-02-04 3 views
-2

잠시 생각해 본 질문이 있습니다. 나는 그들이 여기에 대답하도록하기를 희망한다.원격 알림을 처리하고 보내는 방법 Objective-C

1) 기기에서 무슨 일이 일어나고 있는지에 따라 기기에 많은 푸시 알림이 전송되었습니다. 각 푸시 알림은 다른 ViewController에 사용됩니다. 그런 식으로 나는 PushController가 ViewController가 사용할 필요가있는 커스텀 데이터로 수신되고 있음을 의미합니다. 그래서 설치하는 가장 좋은 방법은 무엇입니까 그래서 쉽게 알림에서 데이터를 공유 할 수 있습니까?

2) 앞서 말했듯이 나는 다른 유형의 알림을 가지고 있습니다. 내가 지금했던 방법은 그래서 내가 무엇을 각 통지를 할 수있는 것은 내가 같이 보낼 것을 알고 :

data: { 
     type: "4", 
     some other data.... 
    } 

그래서 매번 알림 문이 그것이 무엇인지 유형 확인하는 경우 내가이 수신됩니다. 이 작업을 수행하는 데 합법적/올바른 방법입니까 아니면 다른 방법입니까?

난 당신이 특히 질문 1.

에 대한 몇 가지 코드 예제를 제공 할 수 있기를 바랍니다 주셔서 감사합니다!

답변

1

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo는 조건을 입력하는 곳입니다. userInfo 사전은 알림 정보가 저장되는 곳입니다. 원격 알림을받을 때 당신과 같이 로컬 알림을 보낼 수 있습니다

if([userInfo[@"aps"][@"type"] isEqualToString:@"4"]) 
{ 
    //your custom code here 
} 

을 지금 : 예 유형을 얻을 수 있도록 당신과 같이 그것을 다음

[[NSNotificationCenter defaultCenter] postNotificationName:@"yourMessage" object:nil]; 

을보기에 컨트롤러는 추가 :

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(yourCustomMethod) name:@"yourMessage" object:nil]; 

지금처럼 viewWillDisappear: 방법에 지역 알림 등록을 취소하는 것을 잊지 마세요 :

[[NSNotificationCenter defaultCenter] removeObserver:self name:@"yourMessage" object:nil]; 

희망 사항이 명확하지 않으면 알려주세요.

+0

몇 가지 질문이 분명합니다. ViewDidAppear에 addObserver를 두거나 올바르게 표시해야합니까? 또한 두 번째 질문입니다. 내가 ViewController A에있어, 그리고 그 통지의 유형이 ViewController B에서 사용되는 곳에서 알림을받습니다. ViewController B에 대한 몇 가지 속성 값을 설정한다고해도 여전히 처리됩니까? –

+0

ViewWillAppear에 넣어야합니다. removeObserver를 구현 중이므로 현재 ViewController 만 로컬 알림을받습니다. 따라서 ViewController A에 있고 ViewController B에 대한 알림을 받으면 아무 일도 일어나지 않습니다. 이 동작을 원하지 않으면 removeObserver : 메소드를 구현하지 말고 ViewController B가 이미 초기화되어 알림을 처리 할 수 ​​있어야합니다. –

+0

처음부터 viewController A에서 초기화하는 방법이 있습니까? –

관련 문제