Smart Phones are rapidly increasing, so web app developers are more concentrating on porting their web applications compatible to view on smart phones.
With ASP.NET, making an existing web application compatible for smart phones is pretty easy. You can just add the following META tags in the <head> section and you are done. ASP.NET takes care of the rest!
ASP.NET MVC 4 has got pretty more options for making the website Mobile compatible!
In ASP.NET WebForms too, we have an option to check whether the requested device is Mobile or not – Request.IsMobileDevice, which is not appropriate in most of the scenarios! I mean, it’s failing to detect the device type correctly!
Now, we discuss about custom solution for ASP.NET WebForms – detect the device type and redirecting!
Suppose if you have two versions of your web application – Mobile & Desktop, and you may wish to redirect the user to the appropriate web app based on the requested device.
To do that, try the following code snippet!
Let’s examine, what the above code does – A String array holds the mobile device names, which is matched with the User Agent string. If match is successful, then the user is redirected to the Mobile website!
Cool! If you examine the above code, it contains the device names hardcoded in string array! Suppose, in future if you wish to add another device. For that, you may have add the new device name to the string array, recompile it and upload it back to the web server!
Seems to be an inefficient solution. The above solution will be suitable for scenarios like if you are targeting particular device type like iPad etc.,
Now we will see a more generic way to achieve the solution to the problem! We create an XML file, which holds the Mobile device names –
The above file can be created under App_Data folder! Now you can read the device names from this file using classes in System.Xml.Linq namespace.
To do that, check the below code snippet,
Now this solution was more feasible! When you want to add new device, just add an element in the MobieDevices.xml and you are done. No need to re compile you code and upload it back to the web server. It just works!!!
Happy Mobile Web Programming!!!