Firebase 动态链接有效但不显示图像 Android
Firebase Dynamic Links working but not showing image Android
如前所述,我在我的 Android 应用程序中使用 Firebase 动态链接,并且运行良好。问题是当我分享它时,例如在 WhatsApp 中,link 不显示图像,而显示标题和描述。使用的 link 的类型是短的(使用大的,它完美地工作)。
这是我的代码:
FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLongLink(buildDynamicLink())
.buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT)
.addOnCompleteListener(new OnCompleteListener<ShortDynamicLink>() {
@Override
public void onComplete(@NonNull Task<ShortDynamicLink> task) {
if (task.isSuccessful()) {
//Uri previewLink = task.getResult().getPreviewLink();
Uri shortLink = task.getResult().getShortLink();
shareApp(shortLink.toString());
} else {
Toast.makeText(MainActivity.this, task.getException().getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
buildDynamicLink 方法:
private Uri buildDynamicLink(){
String uri = "https://appname.page.link/" +
"?link=" + "https://www.appname.com/" +
"&apn=" + getPackageName() +
"&ibn=" + "name" +
"&st=" + "Title" +
"&sd=" + "Description" +
"&si=" + "validImageUrl";
return Uri.parse(uri);
分享意向
private void shareApp(String uri){
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT,uri);
intent.setType("text/plain");
startActivity(intent);
}
谁能帮我解决这个问题?
提前谢谢大家。
文档说图像必须至少为 300X200 且小于 300KB。之前检查一下。
Dynamic links documentation
其他方法就是用这个方法建长URL:
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLink(Uri.parse("https://www.example.com/"))
.setDomainUriPrefix("https://example.page.link")
.setAndroidParameters(
new DynamicLink.AndroidParameters.Builder("com.example.android")
.setMinimumVersion(125)
.build())
.setIosParameters(
new DynamicLink.IosParameters.Builder("com.example.ios")
.setAppStoreId("123456789")
.setMinimumVersion("1.0.1")
.build())
.setGoogleAnalyticsParameters(
new DynamicLink.GoogleAnalyticsParameters.Builder()
.setSource("orkut")
.setMedium("social")
.setCampaign("example-promo")
.build())
.setItunesConnectAnalyticsParameters(
new DynamicLink.ItunesConnectAnalyticsParameters.Builder()
.setProviderToken("123456")
.setCampaignToken("example-promo")
.build())
.setSocialMetaTagParameters(
new DynamicLink.SocialMetaTagParameters.Builder()
.setTitle("Example of a Dynamic Link")
.setDescription("This link works whether the app is installed or not!")
.build())
.buildDynamicLink(); // Or buildShortDynamicLink()
我不太确定,因为我刚刚用 Flutter 完成了,但是添加你想要的图像的方法是在 setSocialMetaTagParameters() 上。我认为你应该这样编码:
new DynamicLink.SocialMetaTagParameters.Builder()
.setTitle("Shared Title")
.setDescription("Description that you will see on whatsapp")
.setImageUrl("yoururl.com/image.png")//Your url HERE
.build()
如果您使用此方法,您将获得 lorg 动态 link 并获得短 link 您可以使用 buildShortDynamicLink() insted of buildDynamicLink()
希望对您有所帮助!
如前所述,我在我的 Android 应用程序中使用 Firebase 动态链接,并且运行良好。问题是当我分享它时,例如在 WhatsApp 中,link 不显示图像,而显示标题和描述。使用的 link 的类型是短的(使用大的,它完美地工作)。
这是我的代码:
FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLongLink(buildDynamicLink())
.buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT)
.addOnCompleteListener(new OnCompleteListener<ShortDynamicLink>() {
@Override
public void onComplete(@NonNull Task<ShortDynamicLink> task) {
if (task.isSuccessful()) {
//Uri previewLink = task.getResult().getPreviewLink();
Uri shortLink = task.getResult().getShortLink();
shareApp(shortLink.toString());
} else {
Toast.makeText(MainActivity.this, task.getException().getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
buildDynamicLink 方法:
private Uri buildDynamicLink(){
String uri = "https://appname.page.link/" +
"?link=" + "https://www.appname.com/" +
"&apn=" + getPackageName() +
"&ibn=" + "name" +
"&st=" + "Title" +
"&sd=" + "Description" +
"&si=" + "validImageUrl";
return Uri.parse(uri);
分享意向
private void shareApp(String uri){
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT,uri);
intent.setType("text/plain");
startActivity(intent);
}
谁能帮我解决这个问题?
提前谢谢大家。
文档说图像必须至少为 300X200 且小于 300KB。之前检查一下。 Dynamic links documentation
其他方法就是用这个方法建长URL:
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLink(Uri.parse("https://www.example.com/"))
.setDomainUriPrefix("https://example.page.link")
.setAndroidParameters(
new DynamicLink.AndroidParameters.Builder("com.example.android")
.setMinimumVersion(125)
.build())
.setIosParameters(
new DynamicLink.IosParameters.Builder("com.example.ios")
.setAppStoreId("123456789")
.setMinimumVersion("1.0.1")
.build())
.setGoogleAnalyticsParameters(
new DynamicLink.GoogleAnalyticsParameters.Builder()
.setSource("orkut")
.setMedium("social")
.setCampaign("example-promo")
.build())
.setItunesConnectAnalyticsParameters(
new DynamicLink.ItunesConnectAnalyticsParameters.Builder()
.setProviderToken("123456")
.setCampaignToken("example-promo")
.build())
.setSocialMetaTagParameters(
new DynamicLink.SocialMetaTagParameters.Builder()
.setTitle("Example of a Dynamic Link")
.setDescription("This link works whether the app is installed or not!")
.build())
.buildDynamicLink(); // Or buildShortDynamicLink()
我不太确定,因为我刚刚用 Flutter 完成了,但是添加你想要的图像的方法是在 setSocialMetaTagParameters() 上。我认为你应该这样编码:
new DynamicLink.SocialMetaTagParameters.Builder()
.setTitle("Shared Title")
.setDescription("Description that you will see on whatsapp")
.setImageUrl("yoururl.com/image.png")//Your url HERE
.build()
如果您使用此方法,您将获得 lorg 动态 link 并获得短 link 您可以使用 buildShortDynamicLink() insted of buildDynamicLink()
希望对您有所帮助!