Solved

ASP.net Mobile and Tablet Redirect to Different Pages

Posted on 2014-01-08
4
319 Views
Last Modified: 2014-05-15
Hi,

I want to redirect to different pages depending whether the user is on a tablet or mobile device, or even at a basic level only redirect mobiles and not tablets. I have 2 things I have setup, but neither does, they redirect all mobiles and tablet.

        Try
            If Session("mobile") = True Or Session("mobile") Is Nothing Then
                Session("mobile") = True
                Dim u As String = Request.ServerVariables("HTTP_USER_AGENT")
                Dim b As New Regex("(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino", RegexOptions.IgnoreCase)
                Dim v As New Regex("1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-", RegexOptions.IgnoreCase)
                If b.IsMatch(u) Or v.IsMatch(Left(u, 4)) Then Session("mobile") = True
                If b.IsMatch(u) Or v.IsMatch(Left(u, 4)) Then Response.Redirect("http://www.metoyouonline.com/mobilestore/")
                If Request.Browser.IsMobileDevice Then
                    Response.Redirect("http://www.metoyouonline.com/mobilestore/")
                End If
            Else
            End If
        Catch
            Session("mobile") = True
        Finally
        End Try
        Session("mobile") = Session("mobile")

Open in new window


        If Session("mobile") = True Or Session("mobile") Is Nothing Then
            Session("mobile") = True
            If Request.Browser.IsMobileDevice Then
                Response.Redirect("http://www.metoyouonline.com/mobilestore/")
            End If
        End If
        Session("mobile") = Session("mobile")

Open in new window


Any Help would be appreciatted?

Cheers
Karl
0
Comment
Question by:Kbba04527
  • 3
4 Comments
 
LVL 7

Accepted Solution

by:
Kishan Zunjare earned 500 total points
ID: 39764700
Hi,

There is one more and better approach for redirection is through javascript/jQuery.

This is fastest and most of people using this.

Following js code for detecting iOS devices and redirect, similarly you can use for other mobile/tablet.

<script type="text/javascript"> 
// <![CDATA[
if ((navigator.userAgent.indexOf('iPhone') != -1) || (navigator.userAgent.indexOf('iPod') != -1) || (navigator.userAgent.indexOf('iPad') != -1)) {
document.location = "http://www.scottrockers.com/iphone.html";
} // ]]>
</script>

Open in new window


Hope this helps.
-Kishan
0
 

Author Comment

by:Kbba04527
ID: 39764704
My concern with this is SEO, I was hoping to do it server side for speed and avoid any user viewable redirects?
0
 

Author Comment

by:Kbba04527
ID: 39764712
I also use server side to hold a session for people that want to force view on the main site.
0
 

Author Comment

by:Kbba04527
ID: 39777514
Is there anyway to do this server side?
0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

In this article we will discuss all things related to StageFright bug, the most vulnerable bug of android devices.
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now