One of the cool things you can do to help your users connect to your XenDesktop and XenApp environments is the Citrix Mobile Receiver Setup URL Generator at: http://community.citrix.com/MobileReceiverSetupUrlGenerator/

The output of this generator is a couple of links.  The first is an iOS configuration link and the second is the Android configuration link.  What is great about this is once the user gets this link on their iOS or Android device, via email, text message, or carrier pigeon with a micro SD card strapped to its leg , all the user has to do is click on the link and the local instance of the mobile Citrix Receiver is auto-configured.

  • VCDC Email
  • Application warning iOS

Something that Apple had made available is called a Smart App Banner.  (I suggest that you don’t shout “Smart App Banners!” across the cube farm unless you want to start a bunch of prairie dogging or HR emails.) Regardless, the folks at Apple created an easy way for you to advertise the Citrix Receiver app itself from within web interface.  At Citrix Systems we have had had a couple of different temporarily consistent hostnames we point at to get our apps and desktops.  Among my customers, apps.company.com or atwork.company.com have popped up a few times.  The point being, the user puts a name in the browser and the web interface client detect takes over, suggests a client version for Mac, Windows, Java and off they go to application or desktop nirvana.  But what about the lonely neglected mobile devices.  We tell our bosses that we need iPhones, iPads, and Androids for work.  So the smart thing to do is to get a few work apps on there before bosses catch us playing Angry Birds, or Radical.FM  So the question is, “How do I use this on my web interface?”  That is an excellent question.  We are going to take the cute little meta tag referenced in that Apple Dev article and paste that right into the login.aspx file in our web interface site.  For the purposes of demonstration, I’m going to use our Virtual Computing Demo Center or VCDC  as an example.  The default web interface that acts as a front end of the demo instance is hosted on a virtual machine acting as the DDC for XenDesktop.  The screenshots I am using are based on the connection I make to a XenApp desktop logged on as administrator.  \\ddc\c$\inetpub\wwwroot\Citrix\DesktopWeb\auth\login.aspx looked like this:

Now, modified at the top line it looks like this.

Remember that this is something that is only supported in iOS and in fact from the default Safari browser.  Here are some screenshots from iOS after this modification:

What this really showed me is that there are a couple of basic problems.

  1. iOS responds differently thatn Android and the rest of the desktop platforms.
  2. Web Interface redirects browsers of different types to several destinations.

So in other words, iPads, iPhones, Androids, and all of the different browser variations and masquerades land users to different destinations.  So, not just the login page, but the client detection, and other pages that the user doesn’t really need to interact with from a mobile browser.

For now,  I am going to focus on getting as many of the combinations to work in the login page.  Then we can take a look at the other pages users might interact with on the web interface site.

The best option that I found since Java script, ASP, and other scripting technologies don’t necessarily translate between the different mobile platforms and browser types is jQuery.  JQuery is a type of library that allows you to simplify client side scripting. For this example I am using the Google implementation of jQuery as well as a script you can download here: http://jasny.github.com/jquery.smartbanner/# One of the things you will see at this link is a Smart Banner for alternate browsers and points Android to the Play store and iOS to iTunes.

From here the steps are pretty straight forward.  From the download you can:

  • take the jquery.amartbanner.js file and open it in a text editor.  Find the daysHidden and daysReminder values and change them both to 0.
  • Navigate to the folder \\ddc\c$\inetpub\wwwroot\Citrix\DesktopWeb\auth\
  • Copy this modified file into the  directory:
    • Jquery.smartbanner.js
  • Copy these files into the directory
    • Dark_background_stripes.gif
    • Jquery.smartbanner.css
  • Modify the login.aspx
    • At the top of the file:
    <meta name="apple-itunes-app" content="app-id=363501921, app-argument=citrixreceiver://createprofile?s=http%3A%2F%2F50.23.81.116&pname=VCDC-Application-Banner&d=xendesktop&gw=0">
    • After the Register TagPrefix line add the following:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script src="jquery.smartbanner.js"></script>
<script type="text/javascript">
$(function() { $.smartbanner() } )
</script>

The last few steps would be to place these files into a common directory like  ./Citrix/<site_name>/app_data/

 

Once here the links could be modified to point to this common folder.

Another option would be to modify the behavior of various files to specific per-browser behavior.  Because some OS-browser type combinations point to files like ./auth/silentDetection.aspx or ./clientDetection/nativeClientDetection.aspx  you might consider modifying these files as well.

I am working on cleaning up the implementation on a variety of android browsers.  Does anyone out there think this is useful for me to pursue?