Firebase Dynamic Links работает, но не показывает изображение Android - PullRequest
0 голосов
/ 03 февраля 2019

Я использую динамические ссылки Firebase в своем приложении для Android, как уже упоминалось ранее, и это работает хорошо.Проблема в том, что когда я делюсь им, например, в WhatsApp, ссылка не показывает изображение, а показывает заголовок и описание.Тип используемой ссылки - короткая (при использовании большой, она отлично работает).

Это мой код:

    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);
}

Может кто-нибудь помочь мне с этой проблемой?

Спасибо всем заранее.

1 Ответ

0 голосов
/ 04 февраля 2019

В документации сказано, что размер изображения должен быть не менее 300X200 и не более 300 КБ.Проверьте это раньше. Документация по динамическим ссылкам

Другой способ - использовать этот метод для создания длинного 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, а для получения короткой ссылки вы можете использовать метод buildShortDynamicLink (), встроенный в buildDynamicLink ()

Надеюсь, это поможет вам!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...