Как определить между запуском и установкой из Firebase Dynamic Link? - PullRequest
0 голосов
/ 11 января 2019

Когда пользователь нажимает на мою динамическую ссылку Firebase (с глубокой ссылкой), чтобы запустить мое приложение для Android, происходит одно из двух:

  1. Если приложение не установлено, пользователь будет перенаправлен в Google Play для установки приложения, а затем запустит его с моей глубокой ссылкой.
  2. Если приложение установлено, оно будет запущено с моей глубокой ссылкой.

Мое приложение должно знать, что произошло.

Насколько я могу судить, API Firebase не скажет мне, было ли приложение установлено как часть потока FDL. Я что-то упустил?

P.S. Использование общего префикса недостаточно для моих целей, так как они удаляются, когда пользователь очищает данные, и, следовательно, не совсем соответствуют установкам. Я ищу что-то вроде широковещательного события INSTALL_REFERRER, запускаемого Google Play, но это работает с динамическими ссылками Firebase.

1 Ответ

0 голосов
/ 11 января 2019

Согласно документации это вполне возможно:

Когда пользователь открывает одну из ваших динамических ссылок, если ваше приложение еще не установлено, его отправляют в Play Store или App Store для установки вашего приложения (если не указано иное), и ваше приложение открывается. Затем вы можете получить ссылку, которая была передана вашему приложению, и обработать нужную ссылку в соответствии с вашим приложением

Вы можете использовать Dynamic Links SDK и вызвать метод FirebaseDynamicLinks.getDynamicLink(), чтобы получить данные, передаваемые по ссылке:

FirebaseDynamicLinks.getInstance().getDynamicLink(getIntent()).addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
    @Override
    public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
        Uri deepLink = null;
        if (pendingDynamicLinkData != null) {
            deepLink = pendingDynamicLinkData.getLink();
        }
    }
}).addOnFailureListener(this, new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception e) {
        Log.w(TAG, "getDynamicLink:onFailure", e);
    }
});

Вы можете использовать это в сочетании с флагом «firstlaunch», хранящимся в SharedPreferences, чтобы определить, установлено приложение или нет.

    if (prefs.getBoolean("firstlaunch", true)) {
        prefs.edit().putBoolean("firstlaunch", false).commit();
    }

https://firebase.google.com/docs/dynamic-links/android/receive

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