2016-12-08 1 views
0

Google은 PushKit을 사용하여 알림을 수신하는 앱을 보유하고 있습니다. (VoIP 앱이 아니지만, 의료 분야에서 특별한 요구 사항이있는 특수 앱 카테고리로 인해 Apple에서 PushKit을 사용하는 데 필요한 권한을 보유하고 있습니다.)스토리 보드 또는 기타 대화 형 기능을로드하지 않고 PushKit 페이로드를 처리합니다.

앱이 실행되지 않고 PushKit 알림이 들어 오면 시스템에서 앱을 백그라운드로 실행하고 푸시 키트 위임 페이로드 프로세서를 호출합니다 (PKPushRegistryDelegate pushRegistry : didReceiveIncomingPushWithPayload : forType :). 그런 다음 앱이 다시 종료됩니다. 응용 프로그램은 그래픽 대화 형 상태에 도달하지 않습니다.

괜찮 으면 어떻게해야합니까? 그러나 iOS는 스토리 보드와 모든 것을로드하는 완전한 앱 실행을 수행합니다. 또한 UIApplicationDelegate 응용 프로그램 : willFinishLaunchingWithOptions :에서 시작 옵션이 nil이므로 푸시 킷을 처리하기 위해 실행 중이며 대화식으로 진행되지 않을 것입니다.

우리 앱이 PushKit 알림을 처리 할 필요가 없으며 설정되어서는 안되는 완전한 "무거운"리소스, 서버 연결 등을 처리 할 때 문제가 발생합니다. 이것은 특정 문제가 연결되어 (서버 연결 등) 문제가 발생하여 PushKit을 처리 할 때 (그리고 앱이 사라지면) 원하지 않는 동작을 유발합니다.

푸시 킷용으로 출시되었지만 일반적으로 발생하는 모든 앱 설정을 수행하지 않는 것을 알 수있는 방법이 있습니까? 앱이 활성 상태로 전환되면 설정을 완료하는 데 정상적인 활성 상태 전환을 사용할 수 있어야합니다.

답변

0

didReceiveIncomingPushWithPayload에서 Pushkit 페이로드를 가져 오면 푸시 키트 페이로드를 기반으로 한 정보로 로컬 알림을 예약해야합니다. 그러면 앱을 대화 형으로 만들 수 있습니다. NSUserDefault에 세부 정보를 보관하고 로컬 알림 탭 이벤트 및 didFinishLaunchingWithOption을 확인할 수도 있습니다.

이렇게하면 스토리 보드를 시작하고 특정 viewController로 리디렉션 할 수 있습니다.

더 많은 설명이 필요하면 알려주세요.

+0

예, 우리는 우리 자신의 로컬 알림 등을 보내고 있습니다. 그러나 iOS가 백그라운드에서 앱을 실행하여 -didReceiveIncomingPushWithPayload를 처리하면 그 시점에서 스토리 보드 등을로드합니다. pushkit 페이로드를 처리하기 위해로드 할 필요는 없습니다. 우리는 plist의 스토리 보드를 무언가로 설정 한 다음 상호 작용을 감지하면 스스로로드합니다. – chadbag

+0

문제가 해결 되었습니까? 로컬 알림에 사운드 파일을 보관할 수 있으며, 사운드 파일이 재생 될 때까지 앱이 백그라운드에서 활성화됩니다. 또한 NSUserDefault에 플래그를 유지하고 옵션을 사용하여 disfinishlaunching을 확인하고 rootviewcontroller를 변경하여 특정 viewcontroller에 직접 연결할 수 있습니다. 그런 다음 몇 가지 기능을 통해 원래의 rootviewcontroller 프로세스로 다시 설정할 수 있습니다. – Hasya

+0

지금 해결 되었습니까? – Hasya

관련 문제