Prima di tutto creiamo un nuovo stack e mettiamoci dentro un rettangolo che chiamiamo areabrowser, questo sarà lo spazio dove apparirà il contenuto delle pagine web. Ridimensionando a mano il rettangolo, si ridimensionerà automaticamente l'area dove appariranno le pagine; questo è un sistema molto semplice per gestire manualmente l'area del browser. Esempio:
Poi mettiamo il seguente codice:
On OpenCard put the windowid of this stack into tID put revBrowserOpen(tID,"http://www.google.com") into browserid set the curbrow of this card to browserid put the rect of graphic "areabrowser" into temp revBrowserSet browserid,"rect", temp revBrowserSet browserid,"showBorder","true"end OpenCard
function browserid put the curbrow of this card into temp return tempend browserid
on ChiudiBrowser revBrowserClose BrowserId()end ChiudiBrowser
on CloseStack chiudibrowserend CloseStack
Notate la funzione browserid() che ho scritto, è solo una scorciatoia per non dover scrivere tutte le volte put the curbrow of this card into browserid . Questo esempio vi mostra come le funzioni dovrebbero essere utilizzate, solo come scorciatoie, e come invece bisognerebbe utilizzare i messaggi per tutto il resto.
Altra nota: chiudere il browser è importante, altrimenti mentre programmate in Livecode, Livecode salverebbe lo stato della finestra quando chiudete ed ad ogni nuova apertura avreste un browser in più. Questo non vale quando create l'eseguibile, perchè l'eseguibile non si automodifica e quindi riparte ogni volta da zero.
La possibilità di avere più browser nella stessa finestra o card permette di avere la navigazione a linguette, oppure il rendering contemporaneo di più pagine nella stessa finestra del programma.
Sorvolando su queste considerazione, ogni volta che riaprite il programma avrete una cosa simile a questa:
Adesso mettiamo i pulsanti per la navigazione e il campo di digitazione degli indirizzi web:
Per fortuna Livecode contiene le funzioni di navigazione già pronte. Quindi per i pulsanti i codici sono semplicissimi.
Per il pulsante indietro abbiamo:
on mouseUp revBrowserBack browserId() end mouseUpPer il pulsante avanti:
on mouseUp revBrowserForward browserId()end mouseUpPer il pulsante aggiorna:
on MouseUp revBrowserRefresh browserid()end MouseUp
Per il pulsante stop:
on mouseUp revBrowserStop browserId()end mouseUpPer il pulsante vai:
on mouseUp revBrowserSet browserId(), "url", the text of field "indirizzo"end mouseUpe per il campo indirizzo:
on returninfield send MouseUp to button "Vai"end returninfield
on enterinfield send MouseUp to button "Vai"end enterinfieldAdesso possiamo aggiungere qualche tocco grafico in più, ad esempio mettere un'animazione quando carica una pagina. Il metodo migliore è usare una immagine GIF animata, che chiameremo animazione.gif:
Livecode ha già integrati i messaggi quando il browser comincia a caricare e quando finisce, riesce perfino a dirci quale browser sta caricando; i messaggi sono browserBeforeNavigate e browserDocumentComplete. Senza addentrarci troppo in essi, che potete leggere nel dizionario integrato in Livecode, sappiate che potete aggiungere il seguente codice alla card per avere l'animazione che comincia ad animarsi e che si ferma:
on browserBeforeNavigate set the repeatCount of image "animazione.gif" to -1end browserBeforeNavigate
on browserDocumentComplete set the repeatCount of image "animazione.gif" to 0 set the currentFrame of image "animazione.gif" to 1end browserDocumentCompleteFinito! Potete divertirvi ad aggiungere qualche elemento grafico, migliorare i pulsanti, ma non serve altro.
Eccoun esempio di un altro browser fatto il Livecode:
Ora potete divertirvi ad aggiungere la navigazione a linguette o in parallelo, come accennato in questo post. Oppure utilizzare revBrowserGet() e revBrowserSet per interagire con il testo e i form contenti nel browser.
Inoltre potete fantastiche anteprime dei siti con revBrowserSnapshot






Nessun commento:
Posta un commento