Я новичок в сообществе, и я присоединился к нему из-за необходимости выделить проблему, которую мне не удалось решить.
Заранее благодарю за любой ответ, который вы можете дать мне, чтобы помочь мне.
В настоящее время я занимаюсь разработкой проекта в Android Studio и использую базу данных Firebase. У меня возникла необходимость поделиться продуктом, публикацией или списком, которые есть в моем приложении. Из-за этого я решил использовать Firebase Dynamic Link, чтобы поделиться каким-то конкретным объектом.
Мой текущий код пытается создать ссылку и поделиться ею, я хотел бы знать, что я делаю неправильно, поскольку она создает ссылку и позволяет мне поделиться ею, но она не получает параметр, который я передаю. В моем случае «Крышка» - это параметр, который я хочу передать по ссылке, и, нажимая на ссылку, просто принимайте участие, где хранится «Крышка».
holder.BtnShare.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
generateDeepLinkUrl(postCurrent.getLid());
String url="https://palsuper.page.link/lista_compartida";
FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLink( Uri.parse(url))
.setDomainUriPrefix("https://palsuper.page.link")
.setAndroidParameters(
new DynamicLink.AndroidParameters.Builder("com.ibrahim.palsuper")
.setMinimumVersion(1)
.build())
.buildShortDynamicLink( ShortDynamicLink.Suffix.SHORT).addOnCompleteListener( new OnCompleteListener<ShortDynamicLink>() {
@Override
public void onComplete(@NonNull Task<ShortDynamicLink> task) {
if (task.isSuccessful()) {
Uri shortURL = task.getResult().getShortLink();
shareDeepLink(shortURL.toString());
} else {
Toast.makeText(mContext, "error", Toast.LENGTH_SHORT).show();
}
}
});
shareDeepLink( url );
}
} );
}
private String generateDeepLinkUrl(String Lid) {
return "https://palsuper.com/lista_compartida=" + Lid ;
}
private void shareDeepLink(String url) {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Hey! check this content out " + url);
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Check this out !");
mContext.startActivity(Intent.createChooser(shareIntent, "Share this cool content"));
}
GetLink.
private void getDynamicLink() {
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();
Toast.makeText(HomeActivity.this, "Link obtenido del intent " + deepLink, Toast.LENGTH_SHORT).show();
// Log.d(TAG, "Link obtenido del intent " + deepLink.getPath());
getAndParseSharedData(deepLink.getPath());
}
}
})
.addOnFailureListener(this, new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Log.w(TAG, "getDynamicLink:onFailure", e);
}
});
}
private void getAndParseSharedData(String url) {
String pushKey = "";
if (url.contains("_")) {
String[] parts = url.split("=");
pushKey = parts[1];
// Log.d(TAG, "getAndParseSharedData: " + pushKey);
Toast.makeText(HomeActivity.this, pushKey, Toast.LENGTH_SHORT).show();
}
}
}