Uber:如何获取用户最喜欢的位置以放置在深度链接 URI 中
Uber: how to obtain user's favorite locations to place in deeplinking URI
我目前正在制作一个应用程序,其中包含一项功能,用户只需单击一个按钮即可将 Uber 叫回家。我了解到深层链接可以解决问题。但是,我不太确定如何获得用户家的经纬度。非常感谢您对此事的帮助。祝你今天过得愉快。
显示的是获取用于深度链接的 uri 的方法。
private String getUberUri() {
StringBuilder uberUri = new StringBuilder("uber://?action=setPickup&client_id=LNC3kco5fh8RGBhJF9hJtqRKPSPCxMt-");
uberUri.append("&pickup=my_location");
uberUri.append("&dropoff[nickname]=").append(placeBundle.getString("NAME", "Dropoff"));
uberUri.append("&dropoff[latitude]=").append(placeBundle.getDouble("PLACE_LAT"));
uberUri.append("&dropoff[longitude]=").append(placeBundle.getDouble("PLACE_LNG"));
return uberUri.toString();
}
这是按钮的 onClickListener:
Button uberButton = (Button) findViewById(R.id.uberButton);
uberButton.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
if (isPackageInstalled("com.ubercab")) {
Intent uberIntent = new Intent();
uberIntent.setData(Uri.parse(getUberUri()));
mActivity.startActivity(uberIntent);
} else {
Toast.makeText(mActivity, "Please install Uber", Toast.LENGTH_SHORT).show();
Uri uberPlayStoreUri = Uri.parse(
"https://play.google.com/store/apps/details?id=com.ubercab");
Intent uberIntent = new Intent(Intent.ACTION_VIEW, uberPlayStoreUri);
uberIntent.setPackage("com.android.vending");
mActivity.startActivity(uberIntent);
}
}
}
);
有两个 Uber API 端点可用于设置和获取工作和家庭位置。
如果您想设置您的家庭或工作地址,您需要使用:"PUT /v1.2/places/{place_id}" 端点。其中 "place_id" 可以是家庭和工作。
要获取您需要使用的预定义位置:"GET /v1.2/places/{place_id}"
请求示例:
卷曲-H 'Authorization: Bearer '\
-H 'Accept-Language: en_US' \
-H 'Content-Type: application/json' \
'https://api.uber.com/v1.2/places/work'
回复:
{
"address": "685 Market St, San Francisco, CA 94103, USA"
}
唯一的限制是您需要解析地址以获得 "end_latitude" 和 "end_longitude"。
当您发出乘车请求时,还可以选择使用以下参数:
"start_place_id": "home",
"end_place_id": "work"
我目前正在制作一个应用程序,其中包含一项功能,用户只需单击一个按钮即可将 Uber 叫回家。我了解到深层链接可以解决问题。但是,我不太确定如何获得用户家的经纬度。非常感谢您对此事的帮助。祝你今天过得愉快。 显示的是获取用于深度链接的 uri 的方法。
private String getUberUri() {
StringBuilder uberUri = new StringBuilder("uber://?action=setPickup&client_id=LNC3kco5fh8RGBhJF9hJtqRKPSPCxMt-");
uberUri.append("&pickup=my_location");
uberUri.append("&dropoff[nickname]=").append(placeBundle.getString("NAME", "Dropoff"));
uberUri.append("&dropoff[latitude]=").append(placeBundle.getDouble("PLACE_LAT"));
uberUri.append("&dropoff[longitude]=").append(placeBundle.getDouble("PLACE_LNG"));
return uberUri.toString();
}
这是按钮的 onClickListener:
Button uberButton = (Button) findViewById(R.id.uberButton);
uberButton.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
if (isPackageInstalled("com.ubercab")) {
Intent uberIntent = new Intent();
uberIntent.setData(Uri.parse(getUberUri()));
mActivity.startActivity(uberIntent);
} else {
Toast.makeText(mActivity, "Please install Uber", Toast.LENGTH_SHORT).show();
Uri uberPlayStoreUri = Uri.parse(
"https://play.google.com/store/apps/details?id=com.ubercab");
Intent uberIntent = new Intent(Intent.ACTION_VIEW, uberPlayStoreUri);
uberIntent.setPackage("com.android.vending");
mActivity.startActivity(uberIntent);
}
}
}
);
有两个 Uber API 端点可用于设置和获取工作和家庭位置。
如果您想设置您的家庭或工作地址,您需要使用:"PUT /v1.2/places/{place_id}" 端点。其中 "place_id" 可以是家庭和工作。
要获取您需要使用的预定义位置:"GET /v1.2/places/{place_id}"
请求示例:
卷曲-H 'Authorization: Bearer '\ -H 'Accept-Language: en_US' \ -H 'Content-Type: application/json' \ 'https://api.uber.com/v1.2/places/work'
回复:
{ "address": "685 Market St, San Francisco, CA 94103, USA" }
唯一的限制是您需要解析地址以获得 "end_latitude" 和 "end_longitude"。
当您发出乘车请求时,还可以选择使用以下参数:
"start_place_id": "home", "end_place_id": "work"