2016-05-17 40 views
2

我試圖深度連接我的應用程序與優步應用程序。這是我使用的測試代碼:深度鏈接:綽號字段崩潰優步應用程序

String uri = "uber://?action=setPickup&pickup=my_location&dropoff[latitude]=-23.56491&dropoff[longitude]=-46.652005&dropoff[formatted_address]=Av Paulista, 1000 - Bela Vista&dropoff[nickname]=Meeting: Av Paulista, 1000 - Bela Vista"; 

     Intent intent = new Intent(Intent.ACTION_VIEW); 

     intent.setData(Uri.parse(uri)); 
     startActivity(intent); 

的問題是「:」在「送貨[暱稱] =會議:AV保利斯塔,1000 - 貝拉Vista的」崩潰Uber應用程式(應用程序打開,超級加載屏幕顯示一段時間,然後應用程序崩潰)。如果我刪除「:」,它可以順利運行。

我能做些什麼嗎?

謝謝!

回答

1

:是URI方案中的保留字符,可能需要編碼爲%(即%3A)。

(有你的URI其他保留字符,如[],但它可能是Uber應用是:由於某種原因,是敏感的。我不相信你真的應該有編碼:因爲它不能作爲一個分隔符,但它是值得一試的)。

請參閱RFC 3986 section on percent encoding和附近的保留字符部分。

+0

謝謝davmac!使用%3A工作,但它真的很奇怪,只有「:」需要編碼。無論如何,它的工作! :) –