Android намеревается просмотреть элемент с помощью приложения Amazon на устройстве, а не в браузере
-
23-12-2019 - |
Вопрос
В моем приложении для Android у меня есть кнопка с фоновым изображением продукта Amazon.com (скажем, рубашки или чего-то еще), и при нажатии я бы хотел, чтобы она открывалась в приложении Amazon (com.amazon.mShop.android), если оно уже установлено, а не в браузере, и в браузере, если приложение не установлено.
Мне удалось найти, как добавить глубокую ссылку на конкретное клиентское приложение Amazon, но не как перейти по ссылке на конкретный элемент, который открывался бы с помощью open with the Amazon app.
В настоящее время мой прослушиватель кликов открывается в браузере, выполнив следующие действия:
b3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_BROWSABLE);
intent.setData(Uri.parse(urlOfItemOnAmazonSite));
startActivity(intent);
}
})
Решение
Домашняя страница разработчика Amazon, вероятно, является лучшим местом для этого ответа.Это может быть хорошим началом: https://developer.amazon.com/public/apis/earn/in-app-purchasing/docs/deeplink#Link%20Configuration.Здесь они объясняют, как построить Uri
вам нужно будет использовать для установки данных о намерениях.
Конечно, вы можете захотеть быть осторожным и обернуть startActivity
в try/catch на случай, если Amazon не установлен и выдает ошибку ActivityNotFoundException
Другие советы
Вы можете просто сделать следующее:
b3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Uri uri=Uri.parse(productUrl);
Intent intent=new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);
}
})
.
// Примечание. Извлечение URL-адреса хранилища продукта в VAR ProductuRL (или любая другая var) и // анализируют его.