简体   繁体   English

ASP.net从Google重定向到移动网站

[英]ASP.net Redirect to Mobile Site From Google

I have ASP.net web site. 我有ASP.net网站。 I checked device is mobile or not on home page's page load. 我检查设备是否可移动或不在主页页面加载中。 If its mobile, device routing to mobile page. 如果其移动,则设备路由到移动页面。 It works. 有用。 But when I entered my web site from google, there is no routing to mobile page if device is mobile. 但是当我从Google进入我的网站时,如果设备是移动设备,则无法路由到移动页面。 What is the problem here ? 这里有什么问题 ?

control statement: 控制声明:

If Request.Browser.IsMobileDevice Then
        Response.Redirect("MobileHomePage.aspx", True)
    End If

IsMobileDevice is not 100% reliable. IsMobileDevice不是100%可靠的。

Neither is this method but you should have more luck using this (possibly 99% reliable?): 既不是这种方法,但使用此方法您应该有更多的运气(可能是99%可靠吗?):

Public Shared Function IsMobile() As Boolean
    Dim curcontext As HttpContext = HttpContext.Current
    Dim user_agent As String = curcontext.Request.ServerVariables("HTTP_USER_AGENT")
    user_agent = user_agent.ToLower

    ' Checks the user-agent
    If (Not (user_agent) Is Nothing) Then
        ' Checks if its a Windows browser but not a Windows Mobile browser
        If (user_agent.Contains("windows") AndAlso Not user_agent.Contains("windows ce")) Then
            Return False
        End If
        ' Checks if it is a mobile browser
        Dim pattern As String = "up.browser|up.link|windows ce|iphone|iemobile|mini|mmp|symbian|midp|wap|phone|pocket|mobile|pda|psp"
        Dim mc As MatchCollection = Regex.Matches(user_agent, pattern, RegexOptions.IgnoreCase)
        If (mc.Count > 0) Then
            Return True
        End If
        ' Checks if the 4 first chars of the user-agent match any of the most popular user-agents
        Dim popUA As String = "|acs-|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-|dang|doco|eric|hipt|inno|" & _
        "ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-|maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|" & _
        "newt|noki|opwv|palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany|sch-|sec-|send|" & _
        "seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo|teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3c |" & _
        "wap-|wapa|wapi|wapp|wapr|webc|winw|winw|xda|xda-|"
        If popUA.Contains(("|" + (user_agent.Substring(0, 4) + "|"))) Then
            Return True
        End If
    End If

    ' Checks the accept header for wap.wml or wap.xhtml support
    Dim accept As String = curcontext.Request.ServerVariables("HTTP_ACCEPT")
    If (Not (accept) Is Nothing) Then
        If (accept.Contains("text/vnd.wap.wml") OrElse accept.Contains("application/vnd.wap.xhtml+xml")) Then
            Return True
        End If
    End If

    ' Checks if it has any mobile HTTP headers
    Dim x_wap_profile As String = curcontext.Request.ServerVariables("HTTP_X_WAP_PROFILE")
    Dim profile As String = curcontext.Request.ServerVariables("HTTP_PROFILE")
    Dim opera As String = curcontext.Request.Headers("HTTP_X_OPERAMINI_PHONE_UA")
    If ((Not (x_wap_profile) Is Nothing) OrElse ((Not (profile) Is Nothing) OrElse (Not (opera) Is Nothing))) Then
        Return True
    End If
    Return False
End Function

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM