ASP.NET - Detectando as capacidades do Navegador
Embora a maioria dos usuários utilizem o Internet Explorer ainda existem outros navegadores . Não sabia não ????
Pois é , ainda bem que existem outra opções , em minha humilde opinião o monopólio não é salutar para ninguém. Voltando ao assunto , temos outros navegadores no mercado . Estou falando do Opera e do FireFox , para citar os mais conhecidos além do IE.
Pensando na diversidade de Navegadores podemos usar os recursos que ASP.NET oferece para detectar qual o Navegador o usuário esta usando e quais recursos ele suporta.
O objeto HttpBrowserCapabilities faz exatamente isto : descobre a versão e as capacidades de um navegador.
O objeto HttpBrowserCapabilities é uma variável membro do objeto Request , chamado Browser. Assim para você acessar o objeto e suas propriedades você deve utilizar a sintaxe : Browser.Request.NomeDaPropriedade
Abaixo temos uma tabela com as propriedades mais usadas:
ActiveXControls | Obtêm um valor indicando se o Browser do Cliente suporta controles ActiveX. ( True - Sim False- Não) |
AOL | Obtêm um valor indicando se o Browser do Cliente é um Browser America OnLine. ( True - sim False- Não) |
Browser | Obtêm a string do Browser que é transmitida no cabeçalho User-Agent e serve para identificar o Browser. |
ClrVersion | Obtêm o número da versão da CLR .NET instalada no Cliente |
Cookies | Obtêm um valor indicando se o Browser do Cliente suporta Cookies. ( True - Sim False- Não) |
JavaApplets | Obtêm um valor indicando se o Browser do Cliente suporta JavaApplets. ( True - Sim False- Não) |
JavaScript | Obtêm um valor indicando se o Browser do Cliente suporta JavaScript. ( True - Sim False- Não) |
MajorVersion | Obtêm o número para a maior versão do Browser. |
Plataform | Obtêm o nome da plataforma que o cliente usa. |
BackSounds | Obtêm um valor indicando se o Browser do Cliente suporta Som. ( True - Sim False- Não) |
Frames | Obtêm um valor indicando se o Browser do Cliente suporta Frames. ( True - Sim False- Não) |
Tables | Obtêm um valor indicando se o Browser do Cliente suporta Tabelas. ( True - Sim False- Não) |
VBScript | Obtêm um valor indicando se o Browser do Cliente suporta VBScript. ( True - Sim False- Não) |
Version | Retorna o número da versão do Browser do Cliente. |
Vejamos como fica o código de uma página ASP.NET para verificar os recursos do navegador do cliente:
1 - Usando C#
<%@ Page Language="C#" %> <%@ import Namespace="System.Web" %> <html> <head> <title>Recursos do Navegador</title> </head> <body> <p> <font face="Verdana" size="2"><strong>Recursos do Navegador</strong></font> </p> <p> <font face="Verdana" size="2">ActiveX Controls:<%= Request.Browser.ActiveXControls %> <br /> AOL: <%= Request.Browser.AOL %> <br /> Browser: <%= Request.Browser.Browser%> <br /> ClrVersion: <%= Request.Browser.ClrVersion%> <br /> Cookies: <%= Request.Browser.Cookies%> <br /> JavaApplets: <%= Request.Browser.JavaApplets%> <br /> JavaScript: <%= Request.Browser.JavaScript%> <br /> MajorVersion: <%= Request.Browser.MajorVersion%> <br /> MinorVersion: <%= Request.Browser.MinorVersion%> <br /> Platform: <%= Request.Browser.Platform%> <br /> Type: <%= Request.Browser.Type%> <br /> VBScript: <%= Request.Browser.VBScript%> <br /> Version: <%= Request.Browser.Version%> <br /> </font> </p> </body> </html> |
O resultado deste código testado para o FireFox da minha máquina local é :
2- Usando VB.NET
<%@ Page Language="vb" %> <%@ Import Namespace="System.Web" %> <html><head> <title>ASP.NET : Recursos do Navegador</title></head> <body> <% Dim objBrowser As HTTPBrowserCapabilities objBrowser = Request.Browser %> <p align = center><b>ASP.NET : Recursos do Navegador</b></p> <TABLE> <% With objBrowser %> <tr><td><b>Tipo do Browser :</b></td><td><%=.Type %></td></tr> <tr><td><b>Versão do Browser:</b></TD><td> <%=.Version%></td></tr> <tr><td><b>Major version:</b></TD><td> <%=.MajorVersion%></td></tr> <tr><td><b>Minor version:</b></TD><td> <%=.MajorVersion%></td></tr> <tr><td><b>Plataforma :</b></TD><td> <%=.Platform%></td></tr> <tr><td><b>Suporta Tabelas:</b></TD><td> <%=iif(.Tables, "Yes", "No")%></td></tr> <tr><td><b>Suporta Frames :</b></TD><td> <%=iif(.Frames, "Yes", "No")%></td></tr> <tr><td><b>Suporta Som :</b></TD><td> <%=iif(.BackgroundSounds, "Yes", "No")%></td></tr> <tr><td><b>Suporta Cookies :</b></TD><td> <%=iif(.Cookies, "Yes", "No")%></td></tr> <tr><td><b>Suporta JavaScript :</b></TD><td> <%=iif(.JavaScript, "Yes", "No")%></td></tr> <tr><td><b>Suorta JavaApplets :</b></TD><td> <%=iif(.JavaApplets, "Yes", "No")%></td></tr> <tr><td><b>Suporta VBScript :</b></TD><td> <%=iif(.VBScript, "Yes", "No")%></td></tr> <tr><td><b>Suporta controles ActiveX :</b></TD><td> <%=iif(.ActiveXControls, "Yes", "No")%></td></tr> <%End With %> </table> </body> </html> |
O resultado para o FireFox:
Você pode usar este recurso de diversas formas . Um exemplo poderia ser :
Você pode verificar qual o Navegador do cliente e tomar uma decisão como usar um recurso ou emitir uma mensagem. No código abaixo estou verificando se o Navegador do cliente é o Internet Explorer:
if(Request.Browser.Browser.Equals("IE") && Request.Browser.MajorVersion >= 5) Response.Write("Seu Navegador esta atualizado ");
if(Request.Browser.Browser.Equals("Netscape") && Request.Browser.MajorVersion >= 6) Response.Write("Você esta usando a versão 6 do Netscape.");
Por hoje é só ... Até mais
José Carlos Macoratti