XCode Tips&Tricks #9 – Cambiare lo UserAgent delle UIWebView

Rieccoci per un nuovo tips&tricks dedicato alla programmazione per iPhone SDK. Oggi vedremo come cambiare l’user agent delle UIWebView.

Lo UserAgent è, nella sua accezione più usata ma forse meno precisa, è un parametro che ci fornisce delle indicazioni su chi (o che cosa) si è connesso ad un server web. Per farvi un esempio, ogni browser ha il suo UserAgent, così come ogni applicazione che accede ad un server. Lo user agent permette di ricavare informazioni quali il browser utilizzato, il sistema operativo ed altro.

Questa informazione viene anche utilizzata quando utilizzate Safari Mobile per accedere ai vostri siti preferiti: sfruttando tale informazione, infatti, sarà possibile caricare una versione ottimizzata del sito web (come accada anche se aprite BubiDevs dal vostro iPhone).

Oggi vedremo come variare lo UserAgent dei componenti UIWebView, in modo che possiate avere un metodo per caricare pagine web personalizzate, magari con componenti visibili solo all’interno della vostra applicazione.

Per prima cosa, inserite il delegato “UIWebViewDelegate” nella vostra classe. Eccovi un esempio:

Fatto ciò, dovrete implementare tale metodo:

È obbligatorio inserire il codice che vi ho appena riportato in questo metodo, altrimenti il vostro UserAgent non varierà e rimarrà sempre lo stesso (ve lo dico per esperienza personale xD).

La riga importante è la 6, in cui notate come abbiamo inserito “AppNuova” come UserAgent della nostra applicazione. Semplice vero?

Eccovi ora una prova di quello che abbiamo appena creato. Per un’applicazione che sto realizzando dovevo eliminare l’header del tema WPTouch (quello che utilizzo anche io nella versione mobile del blog), quindi ho inserito del codice php che mi controlla l’user agent del browser che carica la pagina: se esso corrisponde all’applicazione, non viene caricato l’header, altrimenti viene caricata normalmente l’intera pagina. Eccovi i due screen dimostrativi:

Spero che questo tips possa tornarvi utile, a me è servito per rendere l’aspetto grafico dell’applicazione più pulito e professionale!

Al prossimo “XCode Tips&Tricks”!

Andrea Busi | @bubidevs

Laureato in Ingegneria Informatica, ho fondato nel 2008 questo piccolo blog, in cui racconto le mie esperienze e i miei pensieri sul mondo dell'informatica. Nella vita mi occupo di sviluppo software, e nel tempo libero continuo a coltivare la mia passione per il mondo iOS.

ommenti a “XCode Tips&Tricks #9 – Cambiare lo UserAgent delle UIWebView

  1. Fabry ha detto:

    utilissimo come ogni tuo Tips! Grazie 🙂

  2. Alessandro Messineo ha detto:

    Complimenti anche per questo Tips 😀
    Una piccola richiesta: se io volessi mostrare in una UIWebView la versione Mobile di YouTube ma visualizzare però solo il risultato della ricerca come potrei eliminare la la parte iniziale (dove c’è il logo di YT e le informazioni sull’account ecc) e terminale della pagina? Volevo così centrare solo il contenuto dove mostra il risultato della mia richiesta.

    Credo possa essere interessante per molti poter mostrare solo determinati elementi presenti nelle pagine web 🙂

    grazie

  3. Sylter ha detto:

    Ottimo tips: ho già in mente dove mi potrà servire…

  4. Andrea Busi ha detto:

    @Alessandro Messineo: purtroppo per fare quello che dici tu non ho trovato un metodo veloce..

    bisogna leggere l’html della pagina e provare a modificarlo, però non è così facile e non sempre funziona..

    se riesco a fare qualcosa ovviamente lo posterò sul blog 😉

  5. Lele ha detto:

    Ciao lo so che sono passati un po’ di mesi ma ho letto il post solo ora e stavo provando a cambiare useragent, non ottengo errori ho seguito tutti i punti, ma lo useragent non mi viene cambiato, uso un sdk 2.2.1, mi potresti dare delle indicazioni? grazie

  6. Andrea Busi ha detto:

    @Lele: ciao, assicurati di aver inserito il delegato nella definizione della classe..
    purtroppo per qualche strano motivo esso era scomparso dal codice nella’articolo, ora l’ho sistemato 😉

    Fammi sapere!

  7. Matteo ha detto:

    Non mi funziona.. ho inserito il delegato nel .h e incollato il codice nel .m (cambiano solo lo user agent, il mio è “app”) ma niente..

  8. Simone ha detto:

    Davvero fantastici! Cerco questa guida da mesi! Fantastici, meglio di DevApp per me!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*