从我的应用程序打开优步,接收和放下位置预先填充,而不使用sdk

时间:2017-08-25 05:45:59

标签: ios swift uber-api

我想通过点击我的应用程序中的按钮来打开uber,其中拾取和下载位置预先填充,而不使用uber sdk。我按照链接建议深层链接,但不起作用:https://developer.uber.com/docs/riders/ride-requests/tutorials/deep-links/introduction

下面给出的是我的代码

首先在这里添加优步:

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

然后在按钮操作中添加了这段代码:

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)
         }

我也只是试图从我的应用程序中打开优步,即使这样也行不通。请提出一些解决方案。提前谢谢!

1 个答案:

答案 0 :(得分:2)

试试这个:

<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")
 }