Динамическая линковка в Android
Я изучал документ http://developer.android.com/training/app-indexing/deep-linking.html чтобы узнать о глубоких ссылках в Android. У меня есть активность в моем приложении для Android под названием WalletActivity
и мне удалось успешно создать Deeplink для этого путем внесения необходимых изменений в AndroidManifest
файл.
Но мой WalletActivity
содержит список опций, нажав на которые он попадает мне на другой вид деятельности WalletRechargeActivity
, содержание которого зависит от соответствующей опции, выбранной из списка опций в WalletActivity
, Теперь я хочу глубокую ссылку, которая может посадить меня прямо на соответствующие WalletRechargeActivity
сам экран. Как я могу это сделать?
Например, если example://wallet
приземляет меня WalletActivity
Я хотел бы что-то вроде example://wallet/abcd50
посадить меня в соответствующие WalletRechargeActivity
экран с возможностью пополнения 50 долларов. И это значение abcd50
может варьироваться от чего-либо до чего-либо, и не фиксируется заранее, поэтому я не могу добавить его в AndroidManifest
файл в отношении WalletRechargeActivity
либо верно? Мне нужно справиться с этим динамически. Итак, вы можете сказать мне, как мне это сделать?
1 ответ
Вот пример кода для направления пользователя в WalletActivity или WalletRechargeActivity. Затем вы можете использовать getIntent().getData()
метод для анализа содержимого URL.
<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>