앱이 백그라운드에서 실행 중일 때 푸시 알림을 받으면 내 앱에 사용자 위치가 필요합니다.iOS 앱 배경 위치 (푸시 알림)
독서의 비트를 수행 한 후 나는이 즉, 불가능하다는 인상을 해요 : 백그라운드에서
1) 앱
2) 푸시 알림을받은
3) 가져 오기 사용자 위치 및 코드 블록을 실행합니다.
사용자 위치를 얻기 위해 N 분마다 작업을 실행할 수 있다고 제안하는 post on here이 발견되었습니다. 그래서 이걸 사용하면 10 분마다 점검 할 수 있지만 실제로 GPS를 작동 시키면 사용자 배터리가 낭비됩니다. 따라서 사용자가 내 앱을 기다리는 푸시 알림을 가지고 있는지를 백그라운드 작업에서 알 수 있는지 궁금합니다. 그렇게하면 10 분마다 점검하고 GPS 만 활성화하면 확인합니다.
아마도 나는이 모든 잘못된 길로 가고 있습니다. 나는 충고를 정말 고맙게 생각합니다. 배경 작업을위한 코드를 아직 가지고 있지 않아서 미안합니다. 아직 작동 시키려고하고 있습니다.
[업데이트] 당신의 조언을
감사 더스틴. 약간의 테스트가 끝나면 더 쉬운 옵션을 선택하기로 결정했습니다. 지금 Apple의 중요한 위치 변경을 사용 중입니다. 배열에 변경 사항을 저장합니다. 마지막 변경이 10 분 전보다 큰 경우에만 업데이트하도록 설정했습니다. 그런 다음 앱이 활성화되면 푸시 알림을 보낸 시간과 배열에서 가장 가까운 시간을 일치시켜 해당 위치를 사용합니다. viewDidLoad에 아래
또는 didFinishingLaunchingWithOptions 추가 : applicationDidEnterBackground :와에서
locationsLogged = [[NSMutableArray alloc] init];
lastLocationTime = [[NSDate alloc] init]
locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
추가 :
푸시 알림을 전송하는 대상은 무엇입니까? 내용에 따라 KVO를 할 수 있습니다. – Dustin
턴 기반 게임/앱 - 사용자가 차례를 마칠 때 상대방에게 푸시 알림이 전송되어 상대방에게 자신의 차례를 알립니다. – dciso
알림이 플레이어의 차례인지 여부에 해당하는 부울 값을 설정합니다. KVO를 부울 값으로 처리하십시오. – Dustin