2014-01-11 1 views
6

In meiner Android-App habe ich eine Schaltfläche mit dem Hintergrundbild eines Amazon.com-Produkts (sagen wir ein Hemd oder etwas), und wenn ich geklickt würde mag es in der Amazon-App (com.amazon.mShop.android) zu öffnen, wenn es bereits installiert ist und nicht im Browser und im Browser, wenn die App nicht installiert ist.Android-Absicht, ein Element mit Amazon-App auf dem Gerät statt Browser anzuzeigen

Ich konnte finden, wie man eine Deep-Link zu einer bestimmten Amazon-Client-App hinzufügen, aber nicht, wie ein Link zu einem bestimmten Element, das geöffnet mit der Amazon App öffnen würde.

Derzeit öffnet mein Klick Hörer die folgenden, indem Sie in einem Browser:

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

Antwort

3

Die Homepage des Amazon-Entwickler ist wahrscheinlich der beste Ort für diese Antwort. Dies kann ein guter Anfang sein: https://developer.amazon.com/public/apis/earn/in-app-purchasing/docs/deeplink#Link%20Configuration. Hier erklären sie, wie Sie die Uri erstellen, die Sie verwenden müssen, um die Intent-Daten festzulegen.

Natürlich können Sie vorsichtig sein wollen und wickeln startActivity in einem try/catch bei Amazon nicht installiert ist, und es wirft ein ActivityNotFoundException

+1

Das ist, was ich gefunden habe, aber ich bin ziemlich sicher, das ist, wie Um den Amazon Appstore zu suchen oder eine Verknüpfung zu einer bestimmten App herzustellen, korrigieren Sie? In ihrem Beispiel verlinkt http://www.amazon.com/gp/mas/dl/android?asin=B004FRX0MY direkt mit der MP3-App, um sie zu kaufen. Stattdessen möchte ich die Absichtsdaten so einrichten, dass die Informationen für das Shirt an die Amazon App weitergeleitet werden, die vom Appstore getrennt ist. –

+0

Ja, das ist für den Appstore. Nun, Sie könnten auch Intent.setPackage() verwenden, um es auf "com.amazon.mShop.android" zu setzen, aber dann müssen Sie immer noch darauf achten, dass das Paket einen IntentFilter hat, der Ihre Absicht verarbeiten könnte, – anddev84

+0

Laut diesem Link : Es sind nicht nur andere Apps, die die ASIN-IDs verwenden. https://developer.amazon.com/public/apis/earn/mobile-associates/docs/direct-linking-implementierung#Direct%20to%20Amazon%20Product%20Detail%20Page. Wenn Sie beispielsweise amazon.com/gp/mas/dl/android?asin=B008GGCAVM verwenden, können Sie ein Kindle Fire kaufen. – anddev84

Verwandte Themen