Hide the "go back" button on mobile device

Hi Gliders ! :wave:t5:
I’m working on a restaurant menu app : by scanning the QR code of the restaurant where you are you will be able to consult its own menu directly.

I built the app as a marketplace to have several restaurant page in a same place, so QR code is restaurant’s page link. But I don’t want customers to have access to other restaurant menu.

Indeed, I want to hide the go back button on the top, so they will not be able to access the pages of other restaurants.

Is that possible ? Is this possible from mobile device ? :sweat_smile:

I don’t think there is any way to hide the back button on a details screen. Here are some ideas of how you could manage it though…

If you’re working with a small number of restaurants, you could create a new screen for each. This would be pretty tedious, but as a new screen you can have a direct link to it without it having a back button at the top. You can also hide the screen so that it’s not showing from the menu or bottom bar. I wouldn’t recommend this unless you’re only working with a few restaurants.

Option two… just make the screen that it goes back to, something that you’re happy with users stumbling upon. I would think you’d make it something like the app’s name, and a list of all the restaurants. But if for whatever reason, these restaurants want zero association between each other, that screen could simply say “Oops, please hit back on your browser, or reopen the menu from the QR code!” or something like that. Then there’s no visible list of all the restaurants for the user to see if they accidentally hit back from the restaurants menu.

2 Likes

I attempted to do the same thing. At one point I had something working, but I think I had been exploiting a glitch that has since been patched. Not sure exactly how to make this happen as your users will always be able to see the URL of the app upon first visit. and can navigate around as they please.

I’m pretty sure something could be done along the lines of this.

Pass in query parameters in the url, extract the query parameter and perform a relation/lookups based on that value. Build your primary tab off of that single row. There would be no back button and nothing to go back to since it would be at a tab level with only one row.

So essentially you have a single row work table and a restaurant table where all data is retrieved from. I’m sure someone could whip up a video demo pretty quickly.

6 Likes

Waaaaaait…how did I miss this??? You can pass query parameters using a Glide deep link? Is the parameter the name of the column?

…doesn’t appear to be…

Yeah, It’s something I tried a year or 2 ago, but couldn’t get to work because the url would always reset to the default and wipe out any query parameters that I added. I guess @grumo discovered it does work now and the query parameters stick. You just need to extract parts from the url. Probably a javascript column. I’d have to look and see how I attempted to do it back then, but I’m sure there’s plenty of info out there for a code snippet.

I don’t think you really need a deep link. Just the root url with some query parameters added.

Actually, ‘Get Part of URL’ → ‘URL of Current Screen’ does work.

Edit: I guess depending on how the navigation is set up, it is possible to lose the parameters if to navigate away from the home screen and go back. I guess it would take some playing around. Maybe a ‘Welcome’ button to write the value into a user specific column so it’s locked in.

1 Like

This works well. You could pass the row number in the parameter and then do a single value from start…same result as a relation/lookup but it would be an index instead of a loop.

The get part of URL is text so you’d have to X1 first.

1 Like

I think it would be safer in this case to have pre-built QR codes with a RowID for each restaurant as a query parameter in the url. That way you aren’t dependant on row position in the table (in case it moves) and it wouldn’t be easy for someone to try throwing different row index numbers into the url. But yeah, lots of fun ways to use this trick.

4 Likes

is there a trick to use this parameter if they navigate without an action… e.g. changing tabs… or must we force them to click something

I only played with it briefly, but I’m guessing they would need to click on something if you want the value stored. Yeah, navigating without a click seemed to lose the parameter when I tried it.

I think a Welcome screen with a button would work pretty well. Especially if you aren’t signed in. Writing the parameter to a user specific column should work without incurring updates as long as you aren’t signed in. So, a button with both a Set Column action and a Show Detail Screen action. Then you wouldn’t need a bunch of lookup columns.

Or, you could just use only a Show Detail Screen action on the button, but if a user goes back to the first screen, they would lose their place and have to rescan the QR codes…if that makes sense.

2 Likes

ok I’ll try option 2 and I’ll tell you, thanks

My option two would definitely work if that’s sufficient for you, but the others have proposed a more elegant solution if you want to try the url with a query parameter!

1 Like

Thinking about it…either method would probably be very similar. The biggest difference would be how the url is formed. Either a standard deep link, or the root url with query parameters. Both would probably be worth comparing. Probably some pros and cons either way.

1 Like

Understood. Last question :pray: Do you think it would be possible to permanently attach a parameter by using a custom domain and modifying the DNS… or would we run into the same issue where… even if that worked… it would only work on the first screen

I have doubts. The only thing a custom domain is going to do is change to root of the url. The rest of the url structure still follows Glide’s hierarchy.

Whenever you navigate to a different url (as we do when navigating within an app), query parameters won’t stick unless you explicitly include them in the full url redirect. Since we don’t have control of that, there is no way to attach query parameters within the app. Seems to be kind of a one and done deal when you first enter an app, since we can control the url that’s entered to navigate into the app. One you are in, it’s at the mercy of Glide.

2 Likes

Oh…I was thinking of this backwards…I thought adding the query parameters would intelligently autofill existing column values— a new feature. This is not the case.

Instead, the data editor is looking at the arbitrary parameters and then we’re using data columns to extract those parameters so they can be displayed on the front end.

Interesting…

2 Likes

Where are you stuck?

The url would look something like
blah.glide.page?name=Robert

Then use:
‘Get Part of URL’ → ‘URL of Current Screen’

image

1 Like

Edited my last post :point_up:

1 Like

Option 2 works !! Thank you !!!
It’s an interesting solution
I created a home page with text as you said “Oops” page. On this page I added a list of restaurant that is hidden.