Better Deep Linking

Thanks Steven! Not sure it solves it though? In my case, I want to display a button only if three conditions are met:

  1. Field X in user collection is not empty AND
  2. Field Y in user collection = Field Z in another collection AND
  3. Text field on page (although it could be another field in user collection) = 1 (basically set by a toggle)

Is this a job for Arbitrary Javascript or can it be done natively? Thanks!

Any news about how it can work on web apps?

@TKOTC I remember you told me you will add a deep-ish link for web apps. Any news?

@TKOTC Steven, so I’ve been testing your better deep linking and Webview components and they seem to work well (thank you!), except for two things:

I use your webview component to access Stripe hosted pages. First for a Stripe Connect account setup and second for credit card payments. The Stripe link is generated via API calls, which returns the required URL. In both cases I save the URL in the relevant collection which is then used in the Webview URL magic text field.

However, when launching the web view, I get the follow screen which lasts for a second or two, then actually does open the right screen (this is the Connect account link):

Then on the payments screen, it launches fine, but upon exit, when it navigates back to the success screen, I see this:

I have both a Better Deep Linking link on that page (which is passed to Stripe and which Stripe then attempts to open) and also a link via the “Check which link was clicked” which links to the same modal.

Any thoughts about what’s going on?

Also, not sure if I should be using either better deep linking or just webview or both like I am.

Thanks!

My understanding is this is only for mobile apps and not web apps, correct? Is there a workaround to make this available for web?

@TKOTC Steven could you help with this last issue? I think I’ve managed to fix everything else through trial and error, but this one is stubborn…

I have a series of custom actions to setup a Stripe Connect account. The process generates a link that needs to be displayed to the end user. I save the link that is returned from Stripe in a collection, then open that link from your webview component. However, a screen with an error appears for a couple of seconds first, but then it does successfully navigate to the correct Stripe hosted screen.

Here is the Webview screen

Any ideas why this might be happening?

Thanks!

Hi Kimberly,

This is only for mobile apps. There is no ability to launch a PWA via a custom link because that is managed by the manifest.json from Adalo.

For vanilla websites, depending on what you want to do, there are some things that can help. I am not sure of your technical abilities, so if this is not clear feel free to ask for further clatification.

If you want to link directly into, lets say, a user profile screen on a website you built then you can certainly make links that do that. Here is a simple setup to start testing.

Create a website and publish it on a proper url. I have created one here https://pragmaflow.adalo.com/web-test. I put no effort, please do not judge.
The home screen is at this url
https://pragmaflow.adalo.com/web-test?target=efwzqplp5oy4ugyo8b6h7o559&params={}
Clicking on Screen 1 button will take you to
https://pragmaflow.adalo.com/web-test?target=8i168812vppyh1hf9c82b3c8d&params={}
Clicking on a user email will take you here
https://pragmaflow.adalo.com/web-test?target=0f54kc276e7nplb0hugjsuytn&params={"acqrx6wtn8rudjihrunzsaq3f.t_528a2f29f83c4fabb41b4a8d661e0840"%3A2}

So, there are 2 things we see on a published website. A target and params, these are what you will manipulate for your ‘deep links’. Every screen has an id which is the target, for the app I built these are
Home: efwzqplp5oy4ugyo8b6h7o559
Screen 1: 8i168812vppyh1hf9c82b3c8d
Screen 2: 0f54kc276e7nplb0hugjsuytn

so if I wanted to send a user to screen 1 directly I would give them a link https://pragmaflow.adalo.com/web-test?target=8i168812vppyh1hf9c82b3c8d

Now screen 2 has “Available Data” in the App editor, which means it needs parameters as seen above. If you paste the link into URL Decoder/Encoder and decode the link we see this
https://pragmaflow.adalo.com/web-test?target=0f54kc276e7nplb0hugjsuytn&params={"acqrx6wtn8rudjihrunzsaq3f.t_528a2f29f83c4fabb41b4a8d661e0840":2}

Target is the screen above, but we have params of
acqrx6wtn8rudjihrunzsaq3f.t_528a2f29f83c4fabb41b4a8d661e0840
and
2

this breaks down to the datasource as acqrx6wtn8rudjihrunzsaq3f, and the table where the data is stored t_528a2f29f83c4fabb41b4a8d661e0840, finally the 2 is the record id. In english this equates to “I want a record with id 2 from the users table in my database”

So, if I wanted to deep link someone into record 1, I would change the 2 to a 1
https://pragmaflow.adalo.com/web-test?target=0f54kc276e7nplb0hugjsuytn&params={"acqrx6wtn8rudjihrunzsaq3f.t_528a2f29f83c4fabb41b4a8d661e0840":1} and then encord the params making a final link of
https://pragmaflow.adalo.com/web-test?target=0f54kc276e7nplb0hugjsuytn&params=%7B%22acqrx6wtn8rudjihrunzsaq3f.t_528a2f29f83c4fabb41b4a8d661e0840%22%3A1%7D

Now, if the goal is to add some extra information for a marketing campaign or things like that, we can do that as well. We just append the URL with the extra data like this
https://pragmaflow.adalo.com/web-test?target=8i168812vppyh1hf9c82b3c8d&marketingId=123

So we have a new parameter called marketingId and we can use the Arbitrary Javascript component to grab the marketingId so we can do something with it
https://vimeo.com/manage/videos/664437452

2 Likes

I would need to see what Association link actually is. From the error message the association link is not actually a url.

@TKOTC The link is like this https://connect.stripe.com/express/onboarding/4Z8MvRQkNpoW

(The link won’t work now, but that’s the format).

The weird thing is it throws the error and then actually does open the site correctly.

Thank you! @TKOTC for the in-depth explanation as this is very useful. In the example of the marketing campaign, I was hoping to have the functionality to auto-populate a signup code with smart text, but Adalo doesn’t seem to have that capability. Appreciate all you’re doing for the Adalo community!

1 Like

Anyone is using the deep linking component? link is no opening to the right screen when i test it

Deep linking is not working for me either (at least in iOS). I’m linking from a web view and it tries to open the URL rather than the app page with the deep link component on it.

Anyone have this working in iOS?

Hi, can I develop this function with this component?

A user registers in the app, generates a random id, and has a button that says share app (that can use the social component that they made) share by whatsapp (that opens their whatsapp agenda) and when they share, it reaches the person the login page with (with the id number of who invited you)

Such great work was done by you do some more technical experiment.

Yeah, and i have done it acutally

great, any tutorial you have? I just need to finish with the share to the login page… Create a signup with a field that puts the id of the one who invited you, it’s the id that’s the same, the form opens there, but I want to eliminate that step and that’s it right now it is loaded … I thought about the button of the form there that it be updated … who invited you is the same as the id … but if you give me an idea it will be great

Hi! First of all thanks for all that Pragmaflow does for the community! Your components are awesome!

I have a little question and it is crucial for me, hope you can help!

It is related to Adalo Javascript Component.

How can I navigate to certain Page in Adalo app using JS code or how can I change the variable (Magic Text) using JS code.

I would be very thankful if you could write a code example in js to perform those actions (if it is possible). That would save my life!

Thanks in advance!