使用自定义按钮作为RideRequestButton优步

时间:2016-11-16 11:10:54

标签: uber-api

我正在使用uber api获取我的应用和特定的乘车请求小部件。我想用自己的自定义按钮代替优步的RideRequestButton。

这是乘车请求按钮的静态代码。

private RideRequestButton blackButton;

blackButton = (RideRequestButton) findViewById(R.id.uber_button_black);
blackButton.setRequestBehavior(new RideRequestActivityBehavior(this,WIDGET_REQUEST_CODE));

是否可以在我自己的按钮上应用该功能。?

2 个答案:

答案 0 :(得分:1)

简单按钮的自定义选项目前是一种配色方案,您可以选择白色主题或黑色主题。请参阅此处的文档:https://github.com/uber/rides-android-sdk#ride-request-button

但是,在后台,按钮只会打开一个深层链接。如果您愿意,可以使用该深层链接并在其上创建自己的自定义按钮。请查看“RequestDeeplinkBehavior”类中“requestride”方法的文档:https://github.com/uber/rides-android-sdk/blob/master/rides-android/src/main/java/com/uber/sdk/android/rides/RequestDeeplinkBehavior.java

答案 1 :(得分:0)

如果我们有自己的按钮,但我们仍然需要使用Uber sdk,希望这可能会有所帮助。有关详细信息,请参阅文档here

使用信息中心中的键构建会话配置。

model = QtSql.QSqlTableModel()
model.setTable("Individuals")
model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit)
model.select()
model.setFilter("Name='Anderson'")
self.tableView.setModel(model)

然后设置骑行参数以及所需的拾取和下降位置。

SessionConfiguration sessionConfig = new SessionConfiguration.Builder()
                .setClientId(CLIENT_ID)
                .setServerToken(SERVER_TOKEN)
                .setRedirectUri(REDIRECT_URI)
                .setClientSecret(CLIENT_SECRET)
                .build();

使用会话配置和乘坐参数构建深层链接。

RideParameters rideParameters = new RideParameters.Builder()
                .setPickupLocation(Double.parseDouble(lat), Double.parseDouble(lng), "Your location", "Current Address")
                .setDropoffLocation(Double.parseDouble(mEvent.getLatitude()), Double.parseDouble(mEvent.getLongitude()), mEvent.getName(), mEvent.getCity())
                .build();

最后从深层链接获取uri并将其作为意图传递。

mDeepLink = new RideRequestDeeplink.Builder(getActivity())
                .setSessionConfiguration(sessionConfig)
                .setFallback(Deeplink.Fallback.APP_INSTALL)
                .setRideParameters(rideParameters)
                .build(); 

它将始终打开应用程序,如果没有安装,请手动重定向到Play商店。