适用于iOS的Uber SDK – 通过深层链接获取实时乘车请求状态

我遇到了一些麻烦find一种方法来做到这一点。 我有一个使用iOS的Uber SDK的应用程序。 我能够添加“乘坐Uber”文本“RideRequestButton”,以深入链接到Uber应用程序。 另外,我完成了使用SSO请求令牌并使用Request范围获取令牌。 现在的问题是…我不知道如何获取通过深层链接进行的当前骑行请求的状态。 这可能吗?

谢谢!


我试着按照其中一个线程中提到的algorithm来使用RidesClient来获取当前的骑行,然后在获得骑乘请求ID之后得到当前的骑行细节。 这是我的代码的一瞥:

func refreshRideRequestStatus () { var requestID: String = "" self.ridesClient.fetchCurrentRide({ ride, response in if (ride != nil) { print ("[refreshRideRequestStatus] ride:", ride ?? "no active ride") requestID = (ride?.requestID)! } else { print ("[refreshRideRequestStatus] ride: no active ride") print ("[refreshRideRequestStatus] response: ", response.response ?? "no response") } }) if (requestID.isEmpty) { print ("[refreshRideRequestStatus] no active request") } else { print ("[refreshRideRequestStatus] requestID: ", requestID) self.ridesClient.fetchRideDetails(requestID, completion: { ride, response in self.isTorchUberFlashable = false if (response.statusCode == 200) { let status:Int = (ride?.status)!.rawValue print("refreshRideRequestStatus] status:", status) switch (status) { case 1: print("[refreshRideRequestStatus] accepted") case 2: print("[refreshRideRequestStatus] arriving") case 3: print("[refreshRideRequestStatus] completed") case 4: print("[refreshRideRequestStatus] driverCanceled") case 5: print("[refreshRideRequestStatus] inProgress") case 6: print("[refreshRideRequestStatus] noDriversAvailable") case 7: print("[refreshRideRequestStatus] processing") case 8: print("[refreshRideRequestStatus] ridersCanceled") case 9: print("[refreshRideRequestStatus] unknown") default:break } } else { print("[refreshRideRequestStatus] error: ", response.response ?? "no data request found") } }) } } 

上面的函数将在每次我的应用程序设置为前景或变为活动时被调用。

对不起,但另一个问题是。 我将如何知道这是否会起作用,并且是否有办法通过请求真正的驾驶并完成整个交易来进行testing?

request范围内,您只能查看使用您的身份validation令牌启动的游乐设施的状态。 因此,如果用户深入到应用程序,然后请求从那里乘坐,您将无法访问该信息。

为了获得这些信息,您将被要求获得all_trips范围的授权。