Don't show this screen again (for visitors)

I’m stumped.

My app has features available to both logged-in and not logged-in users.

I have a welcome screen that explains what the app is all about, which I want the user to be able to opt out of after reading it for the first time.

I created a beautiful “Don’t show this screen again” toggle, and added the true/false component to my users database.

But I just realized, first time visitors haven’t yet created an account, so there’s no user record to update. In fact, some users may never create an account. But they will use parts of the app regularly.

How do I solve this?

How do I display a screen the first time a user launches the app, then allow them to permanently hide that screen even after they launch the app again later.

Have the last screen of your signup process link to that screen rather than your normal home page. Then have that screen link to your home page.

Either that or you make this the first page of your signup process. Once a user signs up they will never need to go through that process again.

Create a blank screen that is not linked anywhere and put a text input on it, when the flow is done set the input to ‘true’ or ‘walkthrough done’ or whatever. On your welcome screen page load check if the text input, if it is empty go to onboarding, if it is not empty go to login.

Text fields are persisted in Adalo by default so until they uninstall the app or you remove the field they will skip onboarding.

Does this mean I don’t need the “don’t show this screen again” toggle?

The user will just see the intro screen once, without having to opt out?

If you want. Or you can keep the toggle, then when the the user clicks whatever button ends your onboarding you can set the unlinked text input to anything with a “sometimes” action where “Don’t show is equal to true”.

You won’t need a property in your collection. Keeping the toggle means that a user can optionally see the onboarding more than once, so it could be a nice feature.

First, I figured this out, and your text input method works great. But…

The first screen still loads briefly before the app jumps to the login screen. Not long, but long enough to see there was something there.

I noticed this happens on my user profile page too, when I have a default avatar set. The screen with the default avatar shows for a second before it jumps to my own user profile page with my own image.

Is there any way to speed this up so the user doesn’t see the initial screen at all?

There is no way to speed that up, however, there is another trick you can do that might make it a nicer experience. Change the first screen from whatever screen you have to a blank white screen (or a different color to match your app). On the blank white screen add the action to load your current first screen or the login screen. It will breifly show a white screen then load the content you want. The user will briefly see the blank screen then the proper screen. It is not the best experience, however, it is probably the best you can get out of no-code

1 Like

@TKOTC, I have a problem. I did as you suggested and created the text input field on its own screen. This worked perfectly, but I finally came up with another approach. So I deleted the text input field, and the standalone screen too.

But now, whenever I launch the app on my phone, it still skips the intro screen and behaves as if the text input function is still active.

I’ve checked the links on the intro screen and don’t see anything that shouldn’t be there.

So where is the text input data stored? You said text input fields are persistent, so it must be stored somewhere, right?

Any thoughts one this?

They are stored in local storage. If you have a browser-based app (sorry, I cannot remember if you are native or web) it will be stored in the browser local storage, on the phone it will be stored in the app data storage.

If you send screenshots to me with the setup I can assist further.

If you want to see the actual location it is stored, open the previewer or shared view in your browser and press the F12 key. This will open the browser developer console. Or, right click on the page and select “inspect” from the context menu. Then go to the Application tab > Storage > Previewer and find persist:root, this is where all your application data is stored

1 Like

Thank you so much for the great explanation.

I’m still using a PWA (saved to my home screen from the link in the previewer).

I solved this myself by deleting the app altogether and re-saving it to my home screen. That fixed it.

But your reply is really useful. I will use it to learn more about how my app works under the hood.

Thanks so much!

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.