在Uber Rides SDK的早期版本中,有一种简单的方法可以使用Ride Request Widget在您的应用程序中嵌入Uber rider体验,但现在它已被弃用。
我的代码是:
SessionConfiguration config = new SessionConfiguration.Builder()
.setClientId("<MY_CLIENT_ID>")
.setClientSecret("<MY_CLIENT_SECRET>")
.setServerToken("<MY_SERVER_TOKEN>")
.build();
RideParameters rideParams = new RideParameters.Builder()
.setProductId("a1111c8c-c720-46c3-8534-2fcdd730040d")
.setPickupLocation(37.775304, -122.417522, "Uber HQ", "1455 Market Street,
San Francisco, California")
.setDropoffLocation(37.795079, -122.4397805, "Embarcadero", "One Embarcadero
Center, San Francisco")
.build();
RideRequestDeeplink deeplink = new RideRequestDeeplink.Builder(context)
.setSessionConfiguration(config)
.setRideParameters(rideParams)
.build();
deeplink.execute();
以前应用程序运行正常。
我想要一些工作或代码片段,这将帮助我实现相同的功能,并根据Uber最新版本迁移以满足新规则。 提前致谢
答案 0 :(得分:1)
最新版本的Uber SDK for Android(v0.9.0)发生了一些变化 - 它增加了对Uber Mobile Web的支持,作为Fallback选项而非弃用的Ride Request Widget。您可以在此处查看我们的文档和深层链接指南:https://developer.uber.com/docs/riders/ride-requests/tutorials/deep-links/introduction#android。
你可以看到一个例子来获取uri(.getUri()),然后在chrometab / Browser等中打开它,如果未安装Uber(或调用.execute()在默认应用程序/浏览器中打开) :
SessionConfiguration config = new SessionConfiguration.Builder()
.setClientId("<CLIENT_ID>")
.setClientSecret("<CLIENT_SECRET>")
.setServerToken("<SERVER_TOKEN>")
.build();
RideRequestDeeplink deeplink = new RideRequestDeeplink.Builder(context)
.setSessionConfiguration(config)
.setFallback(Deeplink.Fallback.MOBILE_WEB)
.setRideParameters(rideParams)
.build();
// to launch as a custom tab with browser fallback
deeplink.execute();
// to get the mobile deep link as a string
String uri = deeplink.getUri();