我正在尝试将我的应用程序与优步应用程序进行深层链接。这是我用作测试的代码:
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);
问题在于":" in" dropoff [nickname] =会议:Av Paulista,1000 - Bela Vista"崩溃优步应用程序(应用程序打开,超级加载屏幕出现一段时间,然后应用程序崩溃)。如果我删除":",它可以顺利运行。
我能做些什么吗?
谢谢!
答案 0 :(得分:1)
:
是URI方案中的保留字符,可能需要%
- 编码(即%3A
)。
(您的URI中还有其他保留字符,例如[
和]
,但可能由于某种原因Uber应用对:
敏感。我不会# 39;相信你应该真正编码:
,因为它不能作为一个分隔符,但它值得一试。)
请参阅RFC 3986 section on percent encoding以及附近有关保留字符的部分。