2014-01-11 1 views
6

В моем приложении для Android у меня есть кнопка с фоновым изображением продукта Amazon.com (скажем, рубашка или что-то в этом роде), и при нажатии как он открывается в приложении Amazon (com.amazon.mShop.android), если он уже установлен, а не в браузере, а в браузере, если приложение не установлено.Android намерен просмотреть элемент с помощью приложения Amazon на устройстве, а не браузера

Я смог найти, как добавить глубокую ссылку на конкретное клиентское приложение Amazon, но не как ссылку на определенный элемент, который будет открыт с открытым приложением Amazon.

В настоящее время, мой щелчок слушатель открывает в браузере, выполнив следующие действия: главная страница

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

ответ

3

-разработчика Amazon, вероятно, является лучшим местом для этого ответа. Это может быть хорошим началом: https://developer.amazon.com/public/apis/earn/in-app-purchasing/docs/deeplink#Link%20Configuration. Здесь они объясняют, как построить Uri, который вам нужно использовать для установки данных Intent.

Конечно, вы можете быть осторожными и обернуть startActivity в Try/улове в случае не установлена ​​Amazon и он бросает ActivityNotFoundException

+1

Вот что я нашел, но я уверен, что как искать в App Store Amazon или ссылку на конкретное приложение, правильно? Таким образом, в их примере http://www.amazon.com/gp/mas/dl/android?asin=B004FRX0MY ссылки непосредственно на приложение MP3, чтобы купить его. Скорее, я хочу, чтобы данные намерения передавали информацию для рубашки в приложение для покупок Amazon, которое отделено от Appstore. –

+0

Да, это для Appstore. Ну, вы также можете использовать Intent.setPackage(), чтобы установить его на «com.amazon.mShop.android», но тогда вам все равно нужно быть осторожным, чтобы в пакете был IntentFilter, который мог бы обрабатывать ваш Intent, – anddev84

+0

Согласно этой ссылке : это не только другие приложения, которые используют идентификаторы ASIN. https://developer.amazon.com/public/apis/earn/mobile-associates/docs/direct-linking-implementation#Direct%20to%20Amazon%20Product%20Detail%20Page. Например, используя amazon.com/gp/mas/dl/android?asin=B008GGCAVM, вы можете купить Kindle Fire. – anddev84