Uber API Deep Linking [was] Broken for Android (Pickup Location)

Update 3: Good news everyone! The issues with Chrome for Android not properly passing the pick-up location to the Uber app appear to have been fixed!

Update 2: I created a WebView app (NoSurge) for Android that manually handles the Uber deep-linking/Android intent and confirmed that this approach allows a user to correctly pass the pick-up location to the Uber app. This might be the best option while we wait for Uber API/Chrome for Android to play nicely together.

Update 1: This Stack Overflow post suggests a problem with the encoding of the intent sent from Chrome for Android to the Uber App. Hopefully Uber comes up with a fix!

I’ve been working on a project that uses Uber’s API to show the different surge rates in walking distance of your location so you can walk a few blocks and pay half the fare. I’ll be launching it shortly (though I can demo it to anyone interested!)

I want to allow someone to click a marker on a map and launch the mobile Uber App with that location as the pickup point. I ran into problems, as the Official Uber API docs for Deep Linking/telling the Uber Android App where to set the pickup location just isn’t working.

The Official Uber API Documentation Example (did not work on my Android):

uber://?client_id=YOUR_CLIENT_ID&action=setPickup&pickup[latitude]=37.775818&pickup[longitude]=-122.418028

Another Try (“pickup_latitude” also mentioned in docs, also did not work):

uber://?client_id=YOUR_CLIENT_ID&action=setPickup&pickup_latitude=37.775818&pickup_longitude=-122.418028

I don’t know why these URL parameters mentioned in the API docs don’t work (and maybe an update will fix this in the future) but for anyone else out there struggling with this, let me know if you find a fix. I’m unsure if its the Android App not being set up correctly, the way Chrome for Android passes the URL to the app, or if there’s something amiss with the API itself. 

Leave a Reply

Your email address will not be published. Required fields are marked *