2016-05-17 57 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工作,但它真的很奇怪,只有“:”需要编码。无论如何,它的工作! :) –