You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android端Uber Ride Request Widget弃用后的迁移方案求助

Hey there! I totally get the frustration when a go-to SDK component gets deprecated—let’s break down the best compliant alternatives to the old Uber Ride Request Widget that fit with Uber’s latest guidelines.

Alternatives to the Deprecated Uber Ride Request Widget

Uber now favors either Deep Links or the Uber Rides API for integrating ride-request functionality. Both are fully supported and align with their current rules.

This method skips heavy SDK setup by directly launching the official Uber app to handle the ride request. It mirrors the user experience of the old widget and is super straightforward.

Android Code Snippet

// Build the deep link URL with pickup/dropoff details
val uberDeepLink = "uber://?action=setPickup&pickup=my_location&dropoff[latitude]=37.775818&dropoff[longitude]=-122.418028&dropoff[nickname]=Uber HQ"

// Launch the Uber app specifically
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(uberDeepLink))
intent.setPackage("com.ubercab") // Ensures we open the official Uber app

if (packageManager.resolveActivity(intent, 0) != null) {
    startActivity(intent)
} else {
    // Fallback: Prompt user to download Uber
    Toast.makeText(this, "Please install the Uber app to continue.", Toast.LENGTH_LONG).show()
}

iOS Code Snippet

if let uberUrl = URL(string: "uber://?action=setPickup&pickup=my_location&dropoff[latitude]=37.775818&dropoff[longitude]=-122.418028&dropoff[nickname]=Uber HQ") {
    if UIApplication.shared.canOpenURL(uberUrl) {
        UIApplication.shared.open(uberUrl, options: [:], completionHandler: nil)
    } else {
        // Fallback: Prompt user to download Uber
        let alert = UIAlertController(title: "Uber Not Installed", message: "Please download Uber from the App Store to continue.", preferredStyle: .alert)
        alert.addAction(UIAlertAction(title: "OK", style: .default))
        present(alert, animated: true)
    }
}

2. Uber Rides API (Full Customization)

If you need deeper integration—like showing price estimates, available vehicle types, or customizing the flow within your app—use the Uber Rides API. Here’s how to approach it:

Step-by-Step Overview

  1. Create an app in the Uber Developer Dashboard to get your Client ID and Server Token.
  2. Call the GET /v1.2/estimates/price endpoint to fetch price ranges and vehicle options for your user.
  3. After the user selects a vehicle, use the POST /v1.2/requests endpoint to initiate the ride (requires user OAuth 2.0 authorization).

Example Price Estimate Request (cURL)

curl -H "Authorization: Token YOUR_SERVER_TOKEN" \
     -H "Content-Type: application/json" \
     "https://api.uber.com/v1.2/estimates/price?start_latitude=37.775818&start_longitude=-122.418028&end_latitude=37.79752&end_longitude=-122.41399"

Example Ride Request (Requires User OAuth Token)

curl -X POST \
     -H "Authorization: Bearer USER_OAUTH_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "product_id": "a1111c8c-c720-46c3-8534-2fcdd730040d", // Replace with your target product ID
           "start_latitude": 37.775818,
           "start_longitude": -122.418028,
           "end_latitude": 37.79752,
           "end_longitude": -122.41399
         }' \
     "https://api.uber.com/v1.2/requests"

Critical Compliance Notes

  • Make sure your app adheres to Uber’s Developer Terms of Service—don’t replicate Uber’s UI elements; always direct users to the official Uber app or API flows.
  • For deep links, always handle the case where the user doesn’t have Uber installed with a clear prompt.
  • When using the API, properly manage OAuth tokens—never store them longer than necessary and follow secure authentication practices.

内容的提问来源于stack exchange,提问作者alamshahbaz16497

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:05:06