• User

    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.net

    If Request.Browser("IsMobileDevice") Then
    Response.Redirect("mobile.htm")
    End If

    sia 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!


  • ModSenior

    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


  • User

    Funziona!!
    Grazie mille! :):)
    Ora devo solo riuscire a inserire la data e ora ma senza l'uso di javascript?
    E' possibile?


  • ModSenior

    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

  • User

    Rieccomi! 😉
    E se la pagina su cui devo installare il codice per il reindirizzamento fosse una pagina statica html?
    Come faccio?


  • ModSenior

    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


  • User

    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 🙂


  • ModSenior

    Prego,
    Quando avrai risolto, se vorrai, potresti scrivere qua il codice così da togliermi la curiosità.

    Valerio Notarfrancesco


  • User

    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.

    :ciauz:


  • ModSenior

    Grazie. :smile5:

    :ciauz:
    Valerio Notarfrancesco


  • User Newbie

    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.


  • User Attivo

    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...

  • ModSenior

    @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