Hide a Variable only in Mobile

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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章