6

我使用了 Firebase Dynamics 链接,它可以打开我的应用程序、去玩商店或去一个 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 回答
-1

只需传入 url:

https://link.example.com ?_ 参数="value1" &参数2 ="value2" ...

于 2021-06-01T20:37:23.263 回答