适用于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
范围的授权。