Capire il tipo di dispositivo (pc-palmare-cell)

giovedì 10 febbraio 2005 - 08.49

PEPE Profilo | Senior Member

Salve,
come da oggetto vorrei sapere qual'e' il modo per capire se la richiesta di un sito viene effettuata da un palmare o da un pc ecc.

In questo modo potrei aprire il sito appropriato per quel dispositivo.

Grazie 1000,
Luca.

GvnnRules Profilo | Senior Member

In questo articolo c'è spiegato bene come fare

http://www.dotnethell.it/articles/MobileWebForms.aspx

Oppure se devi fare un redirect verso versioni diverse di sito è molto semplice, devi aggiungere nel tuo web.config i device che vuoi filtrare, ad esempio quelli che sono wml (WAP) e quelli HTML (browser normale)

<deviceFilters>
<filter name="IsHtml32" compare="PreferredRenderingType" argument="html32" />
<filter name="IsWml11" compare="preferredRenderingMime" argument="text/vnd.wap.wml" />
</deviceFilters>

Dopo di che nella pagina che deve fare il controllo di che tipo di dispositivo è devi solo mettere queste righe

MobileCapabilities mobileCap = (MobileCapabilities) Request.Browser;
if(mobileCap.HasCapability("IsHtml32", null))
{
//Browser
}
if (mobileCap.HasCapability("IsWml11", null))
{
//WAP
}

Ricordati di importare i namespace giusti

using System.Web.UI.MobileControls;
using System.Web.Mobile;

Se ti serve in VB chiedi pure che te lo traduco ... per queste righe di codice ho copiato qualche riga di codice da roba già fatta ;-P

Ciaoz
Gvnn

PEPE Profilo | Senior Member

Ok piu' o meno ho capito il meccanismo ma ti dovrei chiedera un paio di cose :D.

Le righe da aggiungere al web.config vanno all'interno dei tag configuration o ci sta una configurazione a parte?

puoi tradurre in vb?

GvnnRules Profilo | Senior Member

Le righe vanno aggiunte secondo questa gerarchia

<configuration>
<system.web>
<deviceFilters>
.....
</deviceFilters>
</system.web>
</configuration>

La traduzione dovrebbe essere una cosa del genere

dim mobileCap as MobileCapabilities = ctype(Request.Browser, MobileCapabilities)

if mobileCap.HasCapability("IsHtml32", nothing) then
//Browser
end if
if mobileCap.HasCapability("IsWml11", nothing) then
//WAP
end if

circa ... magari c'è qualche errore.

Ciaoz
Gvnn

PEPE Profilo | Senior Member

Ok grazie.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5