Как позволить одному пользователю получить местоположение другого пользователя, когда приложение другого пользователя неактивно? (Swift / Firebase) - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь реализовать функцию, при которой один пользователь, который связан как друзья с другим пользователем, может запросить поиск этого другого пользователя, даже если его приложение неактивно.

Оглядываясь вокруг, я нашел эту статью, показывающую, как обновить местоположение с помощью PushKit, но есть ли способ сделать это, используя вместо этого push-уведомления Apple? Я уже анализирую местоположение пользователей в Firebase, когда приложение активно или в фоновом режиме.

Я также прочитал этот SO-ответ , в котором упоминается пример облачного обмена сообщениями в Firebase. Может ли это быть маршрутом, чтобы взять с этим?

Я уже отправляю обновления местоположения в Firebase, когда приложение пользователя активно, и в фоновом режиме, у меня просто возникают проблемы с обновлением местоположения, когда оно неактивно.

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Я на самом деле не уверен, работает ли это - или это разрешено Apple, - но я, возможно, попытался бы сделать это:

переопределить didReceive(_:withContentHandler:):

override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
    // call contentHandler(...)
}

И, может быть, --– , может - проверить местоположение пользователя и загрузить его на сервер.

Попробуйте использовать тихие push-уведомления .

Дайте мне знать, если это работает.

0 голосов
/ 10 января 2019

сохранить местоположение пользователя в базе данных, а затем сравнить, в моем случае я использую JSON, чтобы получить значения lat и long

let myLocation = CLLocation(latitude: (self.locationManager.location?.coordinate.latitude)!, longitude: (self.locationManager.location?.coordinate.longitude)!)
                        print("My location: ", myLocation)

                        //My buddy's location
                        let myBuddysLocation = CLLocation(latitude: article.Latitud, longitude: article.Longitud)
                        print("my buddy's location: ", myBuddysLocation)

                        //Measuring my distance to my buddy's (in km)

                        let distance = myLocation.distance(from: myBuddysLocation) / 1000
                        print("distance between us: ", distance)

                        //Display the result in km
                        print(String(format: "The distance to my buddy is %.01fkm", distance))
                        //let distanceInMiles = distance / 1000
                        //print("KM DISTANCE BETWEEN US: ", distanceInMiles)
...