Как установить динамическую ссылку на конкретную деятельность в приложении Android
Я реализую приложение для шоппинга. Когда продукт используется совместно, он должен посылать динамическую ссылку, чтобы, когда человек щелкает по нему, открывал только в приложении. Наконец, я достиг этой функции. Но когда я открываю приложение из общей динамической ссылки Я получаю домашнюю страницу, а не страницу продукта. Мне нужна помощь, чтобы получить конкретную страницу продукта, а не открыть домашнюю страницу покупок. Здесь я включаю код. AndroidManifest.xml
<activity android:name=".Postdetails">
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value="MainActivity" />
<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:host="postdetailsnew.com" android:scheme="https"
android:pathPattern=".*"/>
</intent-filter>
</activity>
PostDetails.java Здесь страница PostDetails является единственной страницей дизайна продукта или действия. В этом я написал следующий код.
sharebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
s="https://app_code.app.goo.gl/?link="+ProductLinkInBrowser+"&apn=com.example.maneesh.shop";
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, s);
sendIntent.setType("text/plain");
startActivity(sendIntent);
}
}
FirebaseDynamicLinks.getInstance().getDynamicLink(getIntent())
.addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
@Override
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
// Get deep link from result (may be null if no link is found)
Uri deepLink = null;
if (pendingDynamicLinkData != null) {
deepLink = pendingDynamicLinkData.getLink();
FirebaseAppInvite invite=FirebaseAppInvite.getInvitation(pendingDynamicLinkData);
if(invite!=null){
String invitationId=invite.getInvitationId();
}
}
}
})
.addOnFailureListener(this, new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w("Heyy", "getDynamicLink:onFailure", e);
}
});
Итак, здесь, наконец, открывается главная страница приложения с динамической ссылкой, а не с конкретной страницей продукта, которая является общей. Пожалуйста, помогите мне добиться этого.
1 ответ
Вам необходимо проанализировать URL-адрес в динамической ссылке и запустить намерение отправить пользователя в правую часть вашего приложения. Как правило, в вашей основной деятельности настроен прослушиватель динамических ссылок, который будет направлять вас к любым конкретным потребностям.
deepLink
переменная в вашем коде будет URL, который вы передали в динамической ссылке, например http://yourshop.com/product/12345
, Вы могли бы позвонить deepLink.getPath()
который вернет вам продукт / 12345, а затем уволит и укажет на это, например:
String path = deepLink.getPath();
String[] parts = path.split("/")
if (parts[0] == "product") {
Intent intent = new Intent(this, PostDetails.class);
intent.putExtra("productid", parts[1]);
startActivity(intent);
}