【发布时间】:2017-07-12 05:48:46
【问题描述】:
我很难找到一种方法来做到这一点。我有一个使用 Uber SDK for iOS 的应用程序。我能够添加“RideRequestButton”和“与优步一起乘车”文本,以对优步应用程序进行深度链接。此外,我已完成使用 SSO 请求令牌并使用请求范围获取令牌。现在的问题是......我不确定如何获取通过深度链接发出的当前乘车请求的状态。这可能吗?
谢谢!
我尝试遵循其中一个线程中提到的算法,该算法是使用 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")
}
})
}
}
每次我的应用设置为前台或激活时都会调用上述函数。
抱歉,还有一个问题。 我怎么知道这是否可行?有没有办法通过请求真正的乘车并完成整个交易来测试它?
【问题讨论】: