2010-05-14 11 views

risposta

9

Date un'occhiata a:

http://mobiforge.com/developing/story/lightweight-device-detection-asp

sub is_mobile() 
    Dim Regex, match 
    Set Regex = New RegExp 
    With Regex 
     .Pattern = "(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|windows ce|pda|mobile|mini|palm|ipad)" 
     .IgnoreCase = True 
     .Global = True 
     End With 
    match = Regex.test(Request.ServerVariables("HTTP_USER_AGENT")) 
    If match 
     return True 
    Else 
     return False 
    End If 
End Sub 

** Disclaimer: * il codice non può funzionare, in quanto non ho modo di testarlo e poco knowleage di ASP classico.

+0

Se incontro dovrebbe cambiare Se partita "e poi" si manca un allora! – temple

9

Stavo cercando un modo per farlo da solo. Dopo aver preso il codice già qui ho trovato alcuni problemi (niente di speciale, solo probabilmente mescolando le lingue, una cosa che faccio regolarmente). Ecco la versione modificata corretta per Classic ASP.

Function Is_Mobile() 
    Set Regex = New RegExp 
    With Regex 
    .Pattern = "(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|windows ce|pda|mobile|mini|palm|ipad)" 
    .IgnoreCase = True 
    .Global = True 
    End With 
    Match = Regex.test(Request.ServerVariables("HTTP_USER_AGENT")) 
    If Match then 
    Is_Mobile = True 
    Else 
    Is_Mobile = False 
    End If 
End Function 

Avviso io non ha dichiarato le due variabili, so che è pigro, ma come ASP non è Option Explicit Trovo che sia una convenienza utile.

questo è ora lavorando come un fascino sulla mia pagina per il rilevamento mobili, come segue:

<%If Is_Mobile() then%> 
    <META NAME="viewport" CONTENT="initial-scale = 0.6, user-scalable = no"> 
    <LINK REL="stylesheet" TYPE="text/css" HREF="/CSS/Mobile.css" /> 
<%Else%> 
    <LINK REL="stylesheet" TYPE="text/css" HREF="CSS/Default.css" /> 
<%End If%> 

Speranza che aiuta.

+0

Mi ha aiutato. Grazie. – James

4

aggiornato per il supporto Android

Function is_mobile() 
    Dim Regex, match 
    Set Regex = New RegExp 
    With Regex 
     .Pattern = "(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|windows ce|pda|mobile|mini|palm|ipad|Android|BlackBerry|iPhone|iPod|Palm|Symbian)" 
     .IgnoreCase = True 
     .Global = True 
     End With 
    match = Regex.test(Request.ServerVariables("HTTP_USER_AGENT")) 
    If match then 
     is_mobile=True 
    Else 
     is_mobile=False 
    End If 
End Function 
1

Questo funziona bene per me ..

<% 
dim u,b,v 
set u=Request.ServerVariables("HTTP_USER_AGENT") 
set b=new RegExp 
set v=new RegExp 
b.Pattern="(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|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" 
v.Pattern="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\-" 
b.IgnoreCase=true 
v.IgnoreCase=true 
b.Global=true 
v.Global=true 
if b.test(u) or v.test(Left(u,4)) then response.redirect("http://detectmobilebrowser.com/mobile") end if 
%> 

Fonte http://detectmobilebrowsers.com/

+0

Nota, questo non funzionerà con i tablet vedere il link Informazioni su detectmobilebrowsers.com o semplicemente aggiungere: | android | ipad | playbook | silk alla fine del primo pattern – Paul