3

Firebase 招待を使用し、Android でアプリの起動時に動的リンクにアクセスする場合、ユーザーが招待のおかげでアプリをインストールしたのか、それとも既にインストールされているのかを知る方法はありますか?

どうもありがとう、

ボルハ

4

2 に答える 2

1

編集:答えてくれたCatalin Morosanに感謝

method を使用してこれを見つけることができることがわかりましたAppInviteReferral.isOpenedFromPlayStore(result.getInvitationIntent())。招待状をクリックすると実行されるアクティビティで:

// Create an auto-managed GoogleApiClient with access to App Invites.
mGoogleApiClientInvite = new GoogleApiClient.Builder(this)
        .addApi(AppInvite.API)
        .enableAutoManage(this, this)
        .build();

// Check for App Invite invitations and launch deep-link activity if possible.
// Requires that an Activity is registered in AndroidManifest.xml to handle
// deep-link URLs.
boolean autoLaunchDeepLink = false;
AppInvite.AppInviteApi.getInvitation(mGoogleApiClientInvite, this, autoLaunchDeepLink)
        .setResultCallback(
                new ResultCallback<AppInviteInvitationResult>() {
                    @Override
                    public void onResult(AppInviteInvitationResult result) {
                        if (result.getStatus().isSuccess()) {
                            // Extract information from the intent
                            Intent intent = result.getInvitationIntent();
                            String invitationId = AppInviteReferral.getInvitationId(intent);
                            boolean alreadyUser = AppInviteReferral.isOpenedFromPlayStore(result.getInvitationIntent());
                            if (alreadyUser) {
                                // Do stuff...
                            } else {
                                // Do other stuff...
                            }
                        }
                    }
                });
于 2016-10-09T07:54:26.183 に答える
0

この Google プロダクト フォームの投稿に基づいて、Firebase Dynamic Links ライブラリは、アプリの有効期間ごとに 1 回だけ着信ディープ リンクをチェックします。つまり、もう一度チェックするには、アプリをアンインストールして再インストールする必要があります。これはメソッドの動作に影響を与えgetInvitation()、このメソッドの結果に基づいてアプリが以前にインストールされたかどうかを暗示できるようです。

私には、これは非常に紛らわしいようです。Branch.ioでは、これとはまったく異なります。リンク データ オブジェクトには常にis_first_sessionブール値が含まれており、これを任意の方法でプログラムで処理できます。

于 2016-10-03T14:46:12.993 に答える