- Home
- Categorie
- Coding e Sistemistica
- Help Center: consigli per il tuo progetto
- Reindirizzamento sito per Blackberry
-
Reindirizzamento sito per Blackberry
Ciao a tutti,
spero di aver postato nel posto giusto!
Allora... io ho creato una semplice pagina web per poter visualizzare il mio sito anche sui dispositivi mobili: vorrei che digitando l'indirizzo del mio sito su uno di questi dispositivi si venga reindirizzati alla pagina che ho creato.
Ho provato sia inserendo del codice asp.netIf Request.Browser("IsMobileDevice") Then
Response.Redirect("mobile.htm")
End Ifsia inserendo un codice javascript direttamente sulla home
<script type="text/javascript">
if (checkmobile(navigator.userAgent)) window.parent.location="url della mia pagina"
function checkmobile(nameApp) {
if (nameApp.indexOf('MSIE') != -1) return false;
if (nameApp.indexOf('iPhone') != -1) return true;
if (nameApp.indexOf('Trident') != -1) return true;
if (nameApp.indexOf('blackberry') != -1) return true;
if (nameApp.indexOf('Creative AutoUpdate') != -1) return false;browser_list = new Array("midp", "j2me", "avantg", "docomo", "novarra", "palmos", "palmsource", "240x320", "opwv", "chtml", "pda", "windows ce", "mmp/", "blackberry", "mib/", "symbian", "wireless", "nokia", "hand", "mobi", "phone", "cdm", "up.b", "audio", "SIE-", "SEC-", "samsung", "HTC", "mot-", "mitsu", "sagem", "sony", "alcatel", "lg", "erics", "vx", "NEC", "philips", "mmm", "xx", "panasonic", "sharp", "wap", "sch", "rover", "pocket", "benq", "java", "pt", "pg", "vox", "amoi", "bird", "compal", "kg", "voda", "sany", "kdd", "dbt", "sendo", "sgh", "gradi", "jb", "dddi", "moto");
for(i=0;i<lenght(browser_list);i++){
if(nameApp.indexOf(browser_list*) != -1) return true;
}
return false;
}
</script>Su iphone e nokia va ma su blackberry non c'è verso di farlo andare. Rimane sulla homepage!
Qualcuno sa come aiutarmi?
Grazie mille!
-
Ciao Laura206.
E' giusto il reindirizzamento lato server perché quello con javascript su un dispositivo mobile potrebbe non funzionare; l'utente del palmare / smartphone potrebbe avere disabilitato l'esecuzione del codice js, cosa moto più probabile che su un pc.
If Request.Browser("IsMobileDevice") Then Response.Redirect("mobile.htm") End If
IsMobileDevice è una classe che si appoggia al file machine.config per sapere se una richiesta arriva da un dispositivo mobile oppure no.
La lista dei dispostivi è statica, quindi non può riconoscere i nuovi smartphone (oppure quelli che i programmatori .net non hanno inserito) e quindi hai due possibilità:- aggiungere la definizione per i dispositivi che ti interessa (devi creare un device profile e registrarlo)
- anziché controllare se è un dispositivo mobile fai un controllo per tipo di browser, cioè se è opera mini allora, se è blackberry allora ecc. ecc. ecc.
Io lo farei in base all'useragent:
Dim userAgent As String userAgent = Request.UserAgent If userAgent.IndexOf("BlackBerry") > -1 Then ... End If
Può capitare che l'utente del blackberry abbia modificato l'useragent per apparire come IE, ma a quel punto è una sua scelta consapevole e io la interpreto come se volesse proprio contenuto per pc e non ottimizzato per palmare.
Valerio Notarfrancesco
-
Funziona!!
Grazie mille! :):)
Ora devo solo riuscire a inserire la data e ora ma senza l'uso di javascript?
E' possibile?
-
Sono contento.
Usare javascript o meno è una scelta che solo tu puoi fare in base a quello che vuoi ottenere;
comunque certo che puoi farlo eseguirlo lato server al framework .net con qualcosa del tipo ```
mialabel.Text = DateTime.Now.ToString()Valerio Notarfrancesco
-
Rieccomi!
E se la pagina su cui devo installare il codice per il reindirizzamento fosse una pagina statica html?
Come faccio?
-
E io ritorno
Con l'html e basta non puoi farlo, lato client puoi farlo con javascript ma incorreresti nei problemi che ho considerato nel #2.
Non puoi proprio farlo lato server con un redirect?
Se poi proprio vuoi farlo potresti partire da qualcosa del genere
molto molto rozza:<script type="text/javascript"> var miobrowser = navigator.appName; var Pos = miobrowser.indexOf("BlackBerry"); if (Pos > o) <-- da controllare ? { location.href = "pagina_bb.htm"; } else { location.href = "pagina_tutti.htm"; } </script>
Consiglio lato server comunque.
Valerio Notarfrancesco
-
Grazie!
Allora provo a rendere la pagina htm una pagina php (quest'altro sito è su un altro server diverso da quello dell'altra volta) e mi cerco il codice per il reindirizzamento
-
Prego,
Quando avrai risolto, se vorrai, potresti scrivere qua il codice così da togliermi la curiosità.Valerio Notarfrancesco
-
Ciao,
ho trovato questa cosa cercando per il web e funziona!Ho reso la home.php ed ho inserito questo codice:
<?php
include('mobile_device_detect.php');
mobile_device_detect(true,true,true,true,'indirizzoSitoMobile',false);
?>E sullo stesso livello ho copiato la pagina 'mobile_device_detect.php' (sempre trovata in rete!)
Su blackberry va ma per iPhone ho dovuto abbinarci ancora il javascript.
-
Grazie.
Valerio Notarfrancesco
-
Salve, sono nuovo, e innanzitutto vi voglio salutare e vorrei fare una domanda in merito asl funzionamente dello script che l'utente Laura206 dice che funziona.
Io ho scaricato il file mobile_device_detect.php e creata la funziona dal sito d iriferimento dello script fin qui tutto ok...
Ho reso la mia pagina home.php e inserita la funziona ( ho provato già a psotarla ma mi dice che non sono utente gold e non posso mettere url ecc)
Comunque l'errore sta quando provo a entrare dal mio blackberry browser dallo stesso browser mobile blackbbery mi da un errore (o warning ) in linea 165 del file mobile_device_detect.php
la linea 165 è quella della Location del mio sito mobile....io li ho semplicemente inserito l'url del sito mobile mio e basta....Qualcuno di voi mi potrebbe dire come funziona? Perchè a me la funzione di redirect proprio non vuole funzionare!
Ve ne sarei grato.
-
Scusate se mi intrometto in questa vecchia discussione...
Mi domandavo se era possibile inserire la funzione ```
<?php
require_once('mobile_device_detect.php');
mobile_device_detect(true,false,true,true,true,true,true,'http://mobile.miosito.com',false);
?>in una pagina che non sia .php ma .html. Grazie per il vostro aiuto...
-
@d-force said:
[...]
Mi domandavo se era possibile inserire la funzione [...]
in una pagina che non sia .php ma .html.Certo, è possibile. Dipende però dal server che utilizzi. Devi solo impostare l'interprete php in modo che processi lui anche le pagine html.
Se usi apache prova aggiungendo questa istruzione al file .htaccess:AddType application/x-httpd-php .html
Valerio Notarfrancesco