Как получить строку из динамической ссылки? - PullRequest
0 голосов
/ 27 апреля 2018

У меня установлена ​​динамическая ссылка, по которой вы можете поделиться ссылкой с такими людьми, как этот

Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(Intent.EXTRA_SUBJECT, "Join my group for Lesn");
    intent.putExtra(Intent.EXTRA_TEXT, "https://y28rt.app.goo.gl/?link=https://Lesn.com/joinGroup&apn=c.kristofer.jax2[&amv=21]&groupUid=" + groupUid);
    startActivity(intent);

Как видно по ссылке

"https://y28rt.app.goo.gl/?link=https://Lesn.com/joinGroup&apn=c.kristofer.jax2[&amv=21]&groupUid=" + groupUid

Я поставил дополнительные данные, которые

groupUid = "+ groupUid)

У меня вопрос: как мне получить эту строку по ссылке, используя эту

FirebaseDynamicLinks.getInstance()
            .getDynamicLink(getIntent())
            .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
                @Override
                public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
                    Uri deeplink = null;
                    if (pendingDynamicLinkData != null){
                        deeplink = pendingDynamicLinkData.getLink();
                    }


                }
            });

Редактировать

Так что моей проблемой было неправильное значение моей ссылки. Теперь у меня это работает, но моя другая проблема все еще сохраняется. Используя deeplink.getQueryParameter ("groupUid"), он возвращает ноль, когда я пытаюсь записать значение.

1 Ответ

0 голосов
/ 27 апреля 2018

Прежде всего, чтобы получить параметр из deepLink, используя метод Uri

String group = deeplink.getQueryParameter("groupUid");

Перед этим, чтобы присоединить параметр к динамической ссылке Firebase, вы должны добавить параметр в основную ссылку, прежде чем создавать динамическую ссылку

private void attachParameter(String groupUid) {
    Uri link = Uri.parse("https://Lesn.com/joinGroup")
        .buildUpon()
        .appendQueryParameter("groupUid", groupUid)
        .build();
    generateDynamicLink(link.toString());
}


private void generateDynamicLink(String link) {
    Uri dynamicLink = Uri.parse("https://y28rt.app.goo.gl")
        .buildUpon()
        .appendQueryParameter("link", link)
        .appendQueryParameter("apn", "c.kristofer.jax2")
        .build();

    Log.d(TAG, "generateDynamicLink: " + dynamicLink.toString());
}

Однако я рекомендую использовать Firebase Lib вместо руководства по динамической компоновке:

private void generateDynamicLinkWithLib(Uri link) {
    DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(link)
        .setDynamicLinkDomain("y28rt.app.goo.gl")
        .setAndroidParameters(new Builder().build())
        .setIosParameters(new IosParameters.Builder("c.kristofer.jax2")
            .build())
        .buildDynamicLink();

    Log.d(TAG, "generateDynamicLink: " + dynamicLink.getUri().toString());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...