META POST: Deep Links & URL Parameters

META POST: Deep Links & URL Parameters

This post is a collection of other posts and AppSheet support docs relating to Deep Links and URL Parameters. Please feel free to post links to additional tips below and I will add them to the main post.

Deep Link vs Deep Link Expression

Deep Link: Link to a specific app view. Can be to a single row, full table, filtered-set of rows, pre-filled form, etc.
Deep Link Expression: Formula that takes one or more inputs, and outputs a Deep Link.

The output is URL Encoded

Screen Shot 2020-11-30 at 8.11.47 PM


URL Parameters

Deep Links form a complete link to a specific app view. They contain enough info to get you to the right view, but there are optional parameters that could be included to modify that view.

Below is a list of some common URL parameters with links on how to use each one.

&at=NOW()+1

Force sync when navigating to a view. (See last line of support doc)

&quickedit=true

Open a view in Quick Edit

&group=

Group any table view by any column without editing the view definition

&defaults=

Alternate method of pre-filling a form (instead of LINKTOFORM() )


Thanks to @Fabian for the idea, and to anyone who would like to contribute.
Please link to an existing post, or create a new post for your example. I’d like to keep this post as a collection of links, rather than go in-depth on any one tip. :grin:

13 Likes

The sync was/is the biggest game changer!

3 Likes

I just learned about quickedit=true, and just found group= a few days ago. I know there are more, and it would be great to have them all in one place!

Another one is fasttable, but I don’t know how it would be useful to apply manually. It’s just a fallback when no other view applies.

3 Likes

Map views have all sorts of params…

3 Likes

Legit.

LINKTOFORM() was another huge boon as well; and it’s baby brother the background record creation action type.

2 Likes

I still wish that we could “linktoform” to an existing form… I wish we could add the record id peram to it…

1 Like

???

LinkToROW([RowID], “Form_View”)

???


If you’re meaning you wish we could add data at the same time… yeah.

But you can use other actions to change data before you open the record

I do this in many apps, as I typically have a column called [Form_Type] that I use to hold temporary flags which I use to based which columns should be shown or not.

For instance: “New_Whatever” is something I’ll set the initial value to, then hide a bunch of stuff for the first time the record is made. I have another action that clears this flag, and then others that put other flags there based on the context I need to access the record.

2 Likes

Can’t modify columns with linktorow
Hijacked thread… LOL

1 Like

Thank you so much @GreenFlux for this thread. I knew you are the right person for that :slight_smile:
I like to add some points.

Forced sync as mentioned in the support doc is not working for me.
You already added the “+1” :+1:

Zoom level in Map View

Preselect a row or a pin
You can use the combination of LINKTOFILTEREDVIEW() and “&row=”


Defaults
Can be used in every view type, not only form view.

refresh=1 and wipe=1


7 Likes

Forgot about that one! Another all star!

3 Likes

I found a new one to add to the list…
Table View already opened up to multiselect mode
linktoview(“Documents Filtered”) & “&selected=%5B%5D”

3 Likes

Or:

linktoview(“Documents Filtered”) & “&selected=" & URLENCODE("[]")

It appears the selection list can be constructed thusly (untested):

URLENCODE('["' & SUBSTITUTE(FILTER(...), ",", '","') & '"]')
5 Likes

Hi, can you explain more about this?

1 Like

@1111 I assume you’re asking about the [Form_Type] column I mentioned:

I will create a new post about that in the near future, and link it here.

2 Likes

With _currentLat= and _currentLng= in XY map view you can jump to a point without selecting the pin.
This maybe helpful when you like to only one area.
But you have to calculate the XY to a LatLong.
This can be combined also with _zoom=
This expression is working:

LINKTOFILTEREDVIEW(My_Map_View , ANY_CONDITION)
&'&_currentLat='&(LONG([_THISROW].[XY])/100*90-45)
&'&_currentLng='&(LAT([_THISROW].[XY])/100*180-90)
&'&_zoom=2'
5 Likes

A nice one from @LeventK :slight_smile:

1 Like