如何从firebase中的短动态链接中提取参数值?

时间:2018-04-22 15:20:49

标签: android

我的应用发送短动态链接,如:

https://jEVV7.app.goo.gl/YyHEf?userId=KERJdner4554_aemrnmJe2_WKrmsaf&session=LKE8eEehjr_erjlek34JHFDZcxfberejEJredfMDFnm

我添加了深层链接 https://www.example.com/cart ,动态链接为动态链接。

单击电子邮件时,它会打开链接活动,但它无法通过deepLinkUri.getQueryParameter(“userId”)检索参数值(此处为userId和session的值)。我在这做错了什么?请帮帮我。

1 个答案:

答案 0 :(得分:0)

参数应该是深层链接的一部分,而不是动态链接。

创建动态链接时,请使用https://jEVV7.app.goo.gl/YyHEf作为动态网址,https://www.example.com/cart?userId=KERJdner4554_aemrnmJe2_WKrmsaf&session=LKE8eEehjr_erjlek34JHFDZcxfberejEJredfMDFnm作为深层链接。

现在您将能够检索参数值。

Android代码创建动态链接

Task<ShortDynamicLink> shortLinkTask = 
FirebaseDynamicLinks.getInstance().createDynamicLink()
            .setLink(Uri.parse("https://www.example.com/cart?userId=KERJdner4554_aemrnmJe2_WKrmsaf&session=LKE8eEehjr_erjlek34JHFDZcxfberejEJredfMDFnm"))
            .setDynamicLinkDomain("jEVV7.app.goo.gl")
            .buildShortDynamicLink()
            .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
                @Override
                public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                    if (task.isSuccessful()) {
                        // Short link created
                        Uri shortLink = task.getResult().getShortLink();
                    }
                }


            }).addOnFailureListener(this, new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    //handle failure
                }
            });