iOS 的 Uber SDK - 获取通过 deep link 发出的实时乘车请求状态

Uber SDK for iOS - get real time ride request status made via deep link

我在寻找执行此操作的方法时遇到了一些问题。我有一个使用 iOS 的 Uber SDK 的应用程序。我能够添加带有 "Ride there with Uber" 文本的 "RideRequestButton" 以对 Uber 应用程序进行深层链接。此外,我已完成使用 SSO 请求令牌并使用 Request 范围获取令牌。现在的问题是......我不确定如何获取通过深层链接发出的当前乘车请求的状态。这可能吗?

谢谢!


我尝试遵循其中一个线程中提到的算法,即使用 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")
            }
        })

    }
}

每次我的应用程序设置为前台或激活时,都会调用上面的函数。

抱歉,另一个问题是。 我怎么知道这是否有效,有没有办法通过请求真正的乘车并完成整个交易来测试它?

request 范围内,您只能查看使用您的授权令牌启动的行程的状态。因此,如果用户深层链接到应用程序,然后从那里叫车,您将无法访问该信息。

为了获得此信息,您需要获得 all_trips 范围的授权。