Reputation: 609
I want my users to navigate to my web page (Start page) when clicking on Firebase Dynamic Link (FDL) and my app users to go to a specific page (here I need extra data as JSON).
here is my code:
val dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLink(Uri.parse("{products:...some custom JSON}"))
.setDomainUriPrefix("https://mydomain.page.link")
.setAndroidParameters(DynamicLink.AndroidParameters.Builder().build()) //if set, a click on dynamic link will open android app
.setIosParameters(DynamicLink.IosParameters.Builder("com.foodhatapp.foodhatios").build())
.setSocialMetaTagParameters(DynamicLink.SocialMetaTagParameters.Builder()
.setTitle("Bismillah, FOODHHAAAT")
.setDescription("please click and order at foodhat!")
.setImageUrl(Uri.parse("http://h2866694.stratoserver.net/foodhat/images/products/62-1733-1f644aa6-30af-4237-9478-68a114d7600f.png"))
.build())
.buildShortDynamicLink()
.addOnSuccessListener {
i("teeeeest", it.shortLink.toString())
}
.addOnFailureListener {
i("teeeeest", "error at creating dynamic link...show popup to user..." +
"maybe his internet is broken etc... please check your internet connection and try again later")
}
As you can see, I am trying to pass JSON in setLink()-Section...but where can I pass a JSON correctly?
I am getting an FailureException
I know that setLink() expects a well formated URI...But I want to pass JSON to my apps and for web just navigate to the start page so the root URL of web page...
How to realise that?
Upvotes: 0
Views: 1295
Reputation: 3802
You can append your json data in the link itself like this...
String json = "{}";//convert your json into string
String link = "http://yourdomainlink.com/?jsondata=" + json;
Set the link
.setLink(Uri.parse(link));
Then retrive the json like this(Code is in java)
FirebaseDynamicLinks.getInstance()
.getDynamicLink(getIntent())
.addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
@Override
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
// Get deep link from result (may be null if no link is found)
Uri deepLink = null;
if (pendingDynamicLinkData != null) {
deepLink = pendingDynamicLinkData.getLink();
String json = deepLink.getQueryParameter("jsondata");
}
}
});
Hope this helps
Upvotes: 3