iPhone에서 다른 방식으로 장치 토큰을 사용하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1513580

  •  19-09-2019
  •  | 
  •  

문제

내 응용 프로그램에서 나는 Pushnotification을 사용할 것입니다. 그렇다면 어떻게 다른 방식으로 장치 토큰을 사용할 수 있습니까?

이쪽에서 더 자세히 설명하겠습니다.

그 당시 애플리케이션을 실행할 때마다 장치 토큰이 생성됩니다. 동일한 장치 토큰을 생성하는 것보다 동일한 장치에서 응용 프로그램을 계속해서 실행하면?

Apple 문서에 따라 다른 장치 토큰을 생성하는 경우 서버 측에서 어떻게 처리됩니까? 클라이언트 측 (즉, 장치 토큰 또는 기타 매개 변수)에서 서버 측면으로 보내야하는 것은 무엇이며 서버쪽에 어떤 유형의 시나리오가 있는가?

솔루션이나 코드 스 니펫 또는 유용한 링크가있는 사람은 감사하겠습니다.

도움이 되었습니까?

해결책

다음은 반드시 작동하는 코드가 아닌 예입니다.

- (void)sendProviderDeviceToken:(NSString *)tokenString {
    NSString *udid = [[UIDevice currentDevice] uniqueIdentifier];

    NSString *bundleID = [[NSBundle mainBundle] bundleIdentifier];
    UIRemoteNotificationType type = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];

    NSString *data = [NSString stringWithFormat:@"udid=%@&token=%@&id=%@&type=%i", udid, tokenString, bundleID, type];
    NSString *escapedData = [[data description] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSString *httpRequestURLString = [NSString stringWithFormat:@"http://%@/RegisterDevice.cgi?%@", kRegistrationURI, escapedData];
    NSURL    *httpRequestURL       = [NSURL URLWithString:httpRequestURLString];
}

다른 팁

Cocoafu의 답변에 대한 귀하의 의견에 따라 Mishal

그 당시 애플리케이션을 시작할 때마다 해당 장치의 다른 토큰이 생성 될 것입니까? 그리고 그것이 적절한 방식으로 처리하는 방법과 다른 토큰을 생성한다면?

이 단락 iOS 문서 장치 토큰이 사용자의 장치에서 변경 될 수있는시기를 이해하는 데 도움이되고 앱이 시작될 때마다 발생하는 이유는 다음과 같습니다.

장치 토큰을 요청하고 애플리케이션이 시작될 때마다 제공자에게 전달함으로써 제공자가 장치의 현재 토큰을 갖도록하는 데 도움이됩니다. 사용자가 백업이 생성 된 장치 (예 : 사용자는 새 장치로 데이터를 마이그레이션) 이외의 장치로 백업을 복원하면 알림을 다시 수신하려면 응용 프로그램을 한 번 이상 시작해야합니다. 사용자가 백업 데이터를 새 장치로 복원하거나 운영 체제를 다시 설치하면 장치 토큰이 변경됩니다. 또한 장치 토큰을 캐시하지 않고 제공자에게 제공하지 마십시오. 필요할 때마다 항상 시스템에서 토큰을 얻으십시오. 응용 프로그램이 이전에 등록 된 경우 RegisterforRemotenotificationTypes를 호출합니다. IOS가 추가 오버 헤드를 발생시키지 않고 즉시 장치 토큰을 대의원에게 전달합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top