Search code examples
iosswiftuber-api

Open uber from my app with pickup and dropoff location prefilled without using sdk


I want to open uber from click of button in my app with pickup and dropoff location prefilled without using uber sdk. I followed the link which suggest deep linking but its not working : https://developer.uber.com/docs/riders/ride-requests/tutorials/deep-links/introduction

Below given is my code

Firstly added uber as in here:

<key>LSApplicationQueriesSchemes</key>
    <array>
        <string>uber</string>
    </array>

Then added this piece of code in button action:

let url = NSURL(string:
 "uber://?client_id=oR5_kM9B8Hsxf9BKAXZl7Pm6IcL38n9w&action=setPickup&pickup[latitude]=37.775818&pickup[longitude]=-122.418028&pickup[nickname]=UberHQ&pickup[formatted_address]=1455%20Market%20St%2C%20San%20Francisco%2C%20CA%2094103&dropoff[latitude]=37.802374&dropoff[longitude]=-122.405818&dropoff[nickname]=Coit%20Tower&dropoff[formatted_address]=1%20Telegraph%20Hill%20Blvd%2C%20San%20Francisco%2C%20CA%2094133&product_id=a1111c8c-c720-46c3-8534-2fcdd730040d&link_text=View%20team%20roster&partner_deeplink=partner%3A%2F%2Fteam%2F9383")

         if UIApplication.shared.canOpenURL(url! as URL){
             UIApplication.shared.openURL(url! as URL)
         }

I also just simply tried to open uber from my app, even that is not working. Please suggest some solution. Thanks in advance!


Solution

  • Try this:

    <key>LSApplicationQueriesSchemes</key>
        <array>
            <string>uber</string>
        </array>
    
    
    let url = URL(string:
                "uber://?client_id=oR5_kM9B8Hsxf9BKAXZl7Pm6IcL38n9w&action=setPickup&pickup[latitude]=37.775818&pickup[longitude]=-122.418028&pickup[nickname]=UberHQ&pickup[formatted_address]=1455%20Market%20St%2C%20San%20Francisco%2C%20CA%2094103&dropoff[latitude]=37.802374&dropoff[longitude]=-122.405818&dropoff[nickname]=Coit%20Tower&dropoff[formatted_address]=1%20Telegraph%20Hill%20Blvd%2C%20San%20Francisco%2C%20CA%2094133&product_id=a1111c8c-c720-46c3-8534-2fcdd730040d&link_text=View%20team%20roster&partner_deeplink=partner%3A%2F%2Fteam%2F9383")
    
    if UIApplication.shared.canOpenURL(url!){
                if #available(iOS 10.0, *) {
                    UIApplication.shared.open(url!, options: [:], completionHandler: { (success) in
                        if success  {
                            print("Successfully open uber")
                        }
                    })
                } else {
                    // Fallback on earlier versions
                }
     } else{
                print("app not found")
     }