6

Firebase Dynamics リンクを使用しました。アプリを開いたり、Play ストアに移動したり、URL に移動したりできます。しかし、リンクを介していくつかのパラメーターを渡すと、最初のパラメーターしか取得できません。これが私の動的リンクです:

https://xx.app.goo.gl/?link=http://xx.com/?usn=abc&pass=def&apn=com.xx&afl=http://google.com

そして、このコードを使用してリンクを取得しました:

// Build GoogleApiClient with AppInvite API for receiving deep links
        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .enableAutoManage(this, this)
                .addApi(AppInvite.API)
                .build();

        // Check if this app was launched from a deep link. Setting autoLaunchDeepLink to true
        // would automatically launch the deep link if one is found.
        boolean autoLaunchDeepLink = false;
        AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, this, autoLaunchDeepLink)
                .setResultCallback(
                        result -> {
                            if (result.getStatus().isSuccess()) {
                                // Extract deep link from Intent
                                Intent intent = result.getInvitationIntent();
                                String deepLink = AppInviteReferral.getDeepLink(intent);
                                Logger.e(deepLink);
                            }
                        }
                );

ログ出力: http://xx.com/?usn=abc (pass=def が失われました) この問題を解決した人はいますか?

4

2 に答える 2

18

パラメータの値をURL エンコードする必要がありlinkます。そうしないと、システムはダイナミック リンクのパラメータとダイナミック リンクのパラメータのサブパラメータを判別できませんlink

これは、最終的な URL が次のようになることを意味します。https://xx.app.goo.gl/?link=http%3A%2F%2Fxx.com%2F%3Fusn%3Dabc%26pass%3Ddef&apn=com.xx&afl=http://google.com

重要な注意: (私が推測するように) ユーザー名とパスワードをプレーンテキストのリンク パラメータとして渡そうとする場合、これは非常に悪い考えです。真剣に、これをしないでください。このような要件に対する適切なアプローチについては、この回答をお読みください。

于 2016-12-14T06:48:50.083 に答える