iOS版Uber SDK-通过深度链接获取实时乘车请求状态
我找不到办法来做这件事。我有一个应用程序,它在iOS上使用Uber SDK。我可以添加“RideRequestButton”和“Ride there with Uber”文本,以进行Uber应用程序的深度链接。另外,我已经完成了使用SSO请求令牌并获取具有请求范围的令牌。现在的问题是。。。我不知道如何获取通过deeplink发出的当前乘坐请求的状态。这可能吗 谢谢iOS版Uber SDK-通过深度链接获取实时乘车请求状态,ios,swift,xcode,uber-api,Ios,Swift,Xcode,Uber Api,我找不到办法来做这件事。我有一个应用程序,它在iOS上使用Uber SDK。我可以添加“RideRequestButton”和“Ride there with Uber”文本,以进行Uber应用程序的深度链接。另外,我已经完成了使用SSO请求令牌并获取具有请求范围的令牌。现在的问题是。。。我不知道如何获取通过deeplink发出的当前乘坐请求的状态。这可能吗 谢谢 我尝试遵循其中一个线程中提到的算法,即使用RidesClient获取当前的骑乘,然后在获取骑乘请求ID后获取当前的骑乘细节。以下是
我尝试遵循其中一个线程中提到的算法,即使用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")
}
})
}
}
每当我的应用程序设置为前台或处于活动状态时,就会调用上面的函数
对不起,另一个问题是。
我如何知道这是否有效?是否有办法通过请求真实的骑乘并完成整个交易来测试这一点?使用
请求
范围,您只能查看使用身份验证令牌启动的骑乘的状态。因此,如果用户深度链接到应用程序,然后请求从那里乘车,您将无法访问该信息
为了获得此信息,您需要获得
所有行程范围的授权。通过请求范围,您只能查看使用您的认证令牌启动的骑乘的状态。因此,如果用户深度链接到应用程序,然后请求从那里乘车,您将无法访问该信息
为了获得此信息,您需要获得所有行程的授权。
范围。谢谢@JohnBrophy!。。。将范围请求更改为所有_行程后。我的第二个问题可行吗?“我如何知道这是否有效,是否有办法通过请求一次真正的旅行并完成整个事务来测试这一点?”您可以使用沙箱测试旅行,并在旅行激活时看到Webhook通知您的服务器。Hello@John Brophy和Dustin Whittle。谢谢你的帮助。还有一个问题。我能够制作我正在开发的功能,并使用模拟骑乘(通过终端使用CURL)对其进行了测试。我的客户也想试试。我通过testflight向他们发送了构建。他们说他们能够安装它,但预期的功能在“真实世界的骑行”中不起作用。当我将应用程序上传到iTunesConnect时,它仍在沙箱中。这里有我遗漏的东西吗?再次感谢您,您有日志信息来查看哪里出错了?如果未批准您使用all_trips范围,您需要在应用程序的管理员角色中列出您的客户,否则all_trips范围将无法工作。谢谢@JohnBrophy!。。。将范围请求更改为所有_行程后。我的第二个问题可行吗?“我如何知道这是否有效,是否有办法通过请求一次真正的旅行并完成整个事务来测试这一点?”您可以使用沙箱测试旅行,并在旅行激活时看到Webhook通知您的服务器。Hello@John Brophy和Dustin Whittle。谢谢你的帮助。还有一个问题。我能够制作我正在开发的功能,并使用模拟骑乘(通过终端使用CURL)对其进行了测试。我的客户也想试试。我通过testflight向他们发送了构建。他们说他们能够安装它,但预期的功能在“真实世界的骑行”中不起作用。当我将应用程序上传到iTunesConnect时,它仍在沙箱中。这里有我遗漏的东西吗?再次感谢您,您有日志信息来查看哪里出错了?如果未批准您使用all_trips范围,则需要将您的客户端列在应用程序的管理员角色中,否则all_trips范围将无法工作。