Quick write-up for how to hide a variable in a Catalog Item only in mobile views, and not in the desktop Service Portal (I couldn't find another thread on the subject).
Goal: Hide a variable in a Catalog Item form when the user is using a mobile device. Variable should be visible with the desktop view.
Challenge: There's no quick check box or toggle to tell ServiceNow to hide a field on mobile. Also Catalog UI Policies and Client Scripts apply to both Mobile / Service Portal. We still want the variable to show up when using the Service Portal on a desktop, but not when using a mobile device.
Thankfully the solution I found is quick and straightforward. Someone else might even have a quicker one.
First create a Client Callable Script Include. The only script we need inside of this script include is
return gs.isMobile();
That's it for the Script Include.
Next make a Catalog Client Script that runs onLoad and the UI Type is Mobile / Service Portal.
Make a GlideAjax call to your script include, and set your answer to a variable. If the variable is 'true', that means the user is currently viewing the form from a mobile device. If the answer is 'false', then they are not (note: the true and false returns aren't Boolean, but seem to be text. The quotes around 'true' and 'false' are needed).
From there, it's a simple matter to hide the variables needed when the end user is using a mobile device.
Hope this helps save someone the couple of minutes it takes to put all the pieces together.