1

내 지식으로 APNS에서 device token을 얻은 후에는 다시 수신 할 수 없습니다. 그래서APNS 푸시 알림 - 기기 토큰 및 키 체인

,

마다 디바이스 토큰 변경 (신규 기기 나 컴퓨터, 또는 해당 백업 데이터를 제외하고는 운영 체제 또는 임의의 시간 didRegisterForRemoteNotificationsWithDeviceToken 호출 장치 토큰 변경 재설치) 나 대체 할 새 장치 토큰을 키 체인에 저장하여 다른 용도로 사라지지 않도록하십시오 (장치 토큰을 UUID에 사용하는 것이 좋습니다).

  1. 키 체인 데이터가 사라졌지만 장치 토큰이 변경되지 않을 때 가능합니까?

    (예. 그것은 다시는 호출 didRegisterForRemoteNotificationsWithDeviceToken으로 이어질 것입니다, 그리고 마지막 장치 토큰을 검색 할 수 없습니다. 경우)

  2. 또는 이벤트가 키 체인 데이터 (일반적으로)도 사라 할 장치 토큰을하자 변경 (또는 didRegisterForRemoteNotificationsWithDeviceToken 다시 트리거)? 내 테스트에서

    ,

    A.는 키 체인 데이터를 삭제하고 didRegisterForRemoteNotificationsWithDeviceToken를 트리거하지 않습니다 아이폰에서 "모든 설정 재설정".

    B. iPhone의 "모든 콘텐츠 및 설정 지우기"가 키 체인 데이터를 지우고 모든 앱을 제거합니다. 따라서 didRegisterForRemoteNotificationsWithDeviceToken을 다시 호출 할 앱을 다시 설치하십시오.

    케이스 A와 B는 나를 괴롭히지 않습니다. OS 버전을 업데이트하고 OS 또는 모든 이벤트를 재설치하면 기기 토큰도 변경됩니다.

  3. 누구나 키 체인과 장치 토큰간에 올바른 값 변경 상태를 알고 있습니까?

감사합니다.

업데이트

문제는 어떤 이벤트가 키 체인 데이터 (일반적)은 "didRegisterForRemoteNotificationsWithDeviceToken"againg을 트리거 여부도 사라 할 수있다?

그렇지 않은 경우 어떤 이벤트가 발생합니까?

+0

에 백 엔드에 앱을 시작할 때마다 시간을 보내기 다음 토큰 장치를 저장하는 NSUserDefaults을 사용하고 내 마음에 오는 당신이 필요로 할 때 당신은 장치 토큰을 얻을 수 있습니다 .. 그리고 didRegisterForRemoteNotificationsWithDeviceToken도 당신의 필요를 불렀다. – Max

답변

2

앱로드, 당신은

[[UIApplication sharedApplication] registerForRemoteNotifications]; 

이 앱 위임에 이르게 호출 할 때 "우리가 APNS에서 장치 토큰을 가지고 일단 제가 알기로, 우리는 그것을 다시 얻을 수 없다" 방법 :

- (void) application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)token 

이 호출됩니다. 토큰은 앱이 실행될 때마다 전달됩니다. 키 체인에 저장할 필요가 없습니다.

토큰 값을 푸시 메시지의 발신에 사용할 수 있도록 백 엔드에 보내야합니다.

+0

감사합니다. 하지만 제 경우에는 장치 토큰을 백엔드의 일부 데이터를 쿼리하기위한 UUID로 사용합니다. 따라서 키 체인에 저장해야합니다. 장치 토큰이 변경되지 않기 때문에 "didRegisterForRemoteNotificationsWithDeviceToken :"을 다시 호출 할 수 없습니다. 그런 다음 키 체인이 사라지면 마지막 장치 토큰을 검색 할 수 없습니다. – user3365407

0

한 가지 제안은 거기에서 그것을 검색하고 appDelegate.m