通过Firebase动态链接Android传递多个参数

时间:2016-12-14 02:40:06

标签: android firebase firebase-dynamic-links firebase-invites

我已使用Firebase Dynamics链接,它可以打开我的应用,转到商店或转到网址。但是当我通过链接传递一些参数时,我只能得到第一个参数。 这是我的动态链接:

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(传递= def丢失) 有人解决了这个问题吗?

2 个答案:

答案 0 :(得分:8)

您需要URL encode link参数的值,否则系统无法判断动态链接的参数是什么以及{{1}的子参数是什么动态链接的参数。

这意味着最终的网址应该像link

重要说明:如果您(我怀疑)尝试通过纯文本链接参数传递用户名和密码,这是一个非常糟糕的想法。严重的,< em> 不要这样做 。请阅读this answer以了解此类要求的正确方法。

答案 1 :(得分:0)

就像你传入网址一样:

https://link.example.com?param="value1"&param2="value2" ...