2016-04-02 14 views
4

Ich ging durch das Dokument http://developer.android.com/training/app-indexing/deep-linking.html, um über Deeplinking in Android zu lernen. Ich habe eine Aktivität in meiner Android-App namens WalletActivity und ich habe es geschafft, Deeplink erfolgreich zu erstellen, indem Sie notwendige Änderungen in der Datei AndroidManifest vornehmen.Dynamische Deeplinking in Android

Aber mein WalletActivity enthält eine Liste von Optionen, auf dem Antippen mich WalletRechargeActivity auf eine andere Tätigkeit landet, deren Inhalt auf die jeweilige Option ab, die aus der Liste der Optionen in WalletActivity ausgewählt ist. Nun möchte ich einen Deeplink, der mich direkt auf den jeweiligen Bildschirm bringen kann. Wie mache ich das?

Zum Beispiel, wenn example://wallet mich WalletActivity landet, würde ich so etwas wie example://wallet/abcd50 wie mich mit der $ 50 aufladen Option auf den jeweiligen WalletRechargeActivity Bildschirm zu landen. Und dieser Wert abcd50 kann von irgendetwas zu irgendetwas variieren, und ist nicht von vornherein festgelegt, so kann ich es nicht in der Datei AndroidManifest in Bezug auf die WalletRechargeActivity entweder hinzufügen, oder? Ich muss es dynamisch handhaben. Kannst du mir sagen, wie ich das mache?

+0

https://github.com/airbnb/DeepLinkDispatch ermöglicht deklarative, Annotation-basierte API-Anwendung Deep-Links zu erklären, check it out. – Morse

+0

Registrieren Sie einfach ein Präfixmuster (Wallet/*) und parsen Sie das Präfix in Ihrer WalletRechargeActivity. –

Antwort

0

Hier ist ein Beispielcode, um den Benutzer zu WalletActivity oder WalletRechargeActivity zu leiten. Sie können dann die Methode getIntent().getData() verwenden, um den URL-Inhalt zu analysieren.

<activity android:name=".WalletActivity"> 
    <intent-filter> 
     <action android:name="android.intent.action.VIEW" /> 

     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 

     <data android:scheme="example" /> 

     <data android:host="wallet" /> 
    </intent-filter> 
</activity> 
<activity android:name=".WalletRechargeActivity"> 
    <intent-filter> 
     <action android:name="android.intent.action.VIEW" /> 

     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 

     <data android:scheme="example" /> 

     <data android:host="wallet" /> 

     <data android:pathPattern="/..*" /> 
    </intent-filter> 
</activity>