0

我正在尝试实现一项功能,其中一个用户作为朋友与另一个用户链接,即使他们的应用程序处于非活动状态,也可以请求定位该其他用户。

环顾四周,我发现这篇文章展示了如何使用 PushKit 更新位置,但是有没有办法使用 Apple 的推送通知来代替?当应用程序处于活动状态或在后台时,我已经将用户位置解析到 Firebase。

我还阅读了这个 SO answer,其中提到了 Firebase 的 Cloud-Messaging 示例。这可能是一条路线吗?

当用户的应用程序处于活动状态并且在后台运行时,我已经向 Firebase 发送位置更新,但当它处于非活动状态时,我无法更新位置。

4

2 回答 2

1

我实际上不确定这是否可行——或者苹果是否允许——但我可能会尝试这样做:

覆盖didReceive(_:withContentHandler:)

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

也许——<em>也许——检查用户的位置并将其上传到那里的服务器。

尝试使用静默推送通知

让我知道这个是否奏效。

于 2019-01-10T19:59:19.003 回答
0

将用户的位置保存在您的数据库中,然后在我的情况下进行比较,我使用 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)
于 2019-01-10T19:22:49.017 回答