6

I've used Firebase Dynamics link and it can open my app, go to play store or go to an URL. But when I pass some parameters through link, I can only get first parameter. Here's my dynamic links:

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

And I used this code to get the link:

// 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);
                            }
                        }
                );

And the log print: http://xx.com/?usn=abc (the pass=def was lost) Anyone resolve this issue?

Frank van Puffelen
  • 565,676
  • 79
  • 828
  • 807
maphongba008
  • 2,114
  • 4
  • 20
  • 33

2 Answers2

20

You need to URL encode the value of the link parameter, otherwise the system can't tell what is a parameter of the Dynamic Link and what is a sub-paramater of the link parameter of the Dynamic Link.

This means the final URL should look like https://xx.app.goo.gl/?link=http%3A%2F%2Fxx.com%2F%3Fusn%3Dabc%26pass%3Ddef&apn=com.xx&afl=http://google.com

Important note: if you are (as I suspect) attempting to pass usernames and passwords through as plaintext link parameters, this is an incredibly bad idea. Seriously, do not do this. Read this answer for the proper approach to a requirement like this.

Community
  • 1
  • 1
Alex Bauer
  • 13,147
  • 1
  • 27
  • 44
-1

Simply as you pass in url:

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

akash maurya
  • 607
  • 9
  • 16