2016-11-16 5 views
0

私のアプリと特定の乗り物リクエストウィジェットにuber apiを使用しています。 UberのRideRequestButtonの代わりに自分のカスタムボタンを使いたい。カスタムボタンをRideRequestButtonとして使用するUber

これは乗車要求ボタンの静的コードです。

private RideRequestButton blackButton; 

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

自分のボタンに機能を適用することはできますか?

答えて

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

+0

アプリが携帯電話にインストールされていない場合、ディープリンクは私をプレイストアにリダイレクトします。しかし、私は自分のアプリ内でのみログインページを開きたいと思います。 –

+0

@SavinSharma 'deeplink.execute()'はあなたが言っていることをします。私の答えを見てください。 – Debdeep

0

私たち自身のボタンがありますが、依然としてUber sdkを使用する必要がある場合は、これが役立つことを願ってください。詳細については、docsを参照してくださいhere

ダッシュボードからキーを使用してセッション構成を構築してください。

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(); 

セッション構成を使用してディープリンクを構築し、上記のパラメータを使用します。

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

最後に、逆リンクからURIを取得し、それを意図として渡します。

startActivity(new Intent(Intent.ACTION_VIEW, mDeepLink.getUri())); 

これは常にアプリケーションを開き、インストールされていない場合は、手動で再生ストアにリダイレクトします。

関連する問題