Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 26 di 44
  • livello principiante
Indice lezioni

Detect Plugin: primo metodo

Determinare la presenza della corretta versione del plugin
Determinare la presenza della corretta versione del plugin
Link copiato negli appunti

TGetProperty

TGetPropertyAsNumber

TSetProperty

TGotoFrame

TGotoLabel

TPlay

TStopPlay

Scopo

Indirizzare l'utente in base alla presenza o meno del plugin

Strumenti

Macromedia Flash Deployment Kit

Metodo

Il Macromedia Flash Deployment Kit è probabilmente il sistema di "sniffing" più accurato in circolazione, dal momento che utilizza tutti i sistemi di rilevamento della presenza del plugin possibili: ne vediamo qui la procedura di "installazione" e i settaggi necessari per utilizzarlo al meglio, spiegandone le varie opzioni.

Innanzitutto scarichiamo il file .zip da questo indirizzo (è necessaria l'iscrizione ai servizi della Macromedia), e decomprimiamolo in una cartella.

Nella sottocartella "Flash_Deployment_kit", evidenziata in blu nell'immagine, troveremo tutti i file che ci sono necessari:

Flash Dispatcher

Flash Dispatcher

In una cartella a parte salviamo questi tre:

Files necessari

Files necessari

Poi scarichiamo da questo link gli altri nove file. La situazione finale sarà questa:

Situazione finale

Situazione finale

  • index.html: la pagina che viene aperta per prima, e che contiene il richiamo alle procedure per il rilevamento del plugin
  • flash.html: la pagina alla quale verrà reindirizzato il visitatore se il plugin è presente nella versione corretta (incorpora flash.swf)
  • noflash.html: la pagina alla quale verrà reindirizzato il visitatore se non ha il plugin e non lo vuole scaricare/aggiornare (incorpora noflash.gif)
  • upgrade.html: la pagina da caricare se il plugin è in una versione inferiore a quella richiesta (incorpora upgrade.gif)
  • download.html: la pagina da caricare se il plugin non è presente e vogliamo che il visitatore lo scarichi (incorpora download.gif)

Tre sono le pagina da analizzare: upgrade.html, download.html e index.html

upgrade.html

Sono presenti due link: uno punta alla pagina di scaricamento del plugin sul sito della Macromedia, l'altro alla pagina noflash.html, nel caso in cui il visitatore non voglia scaricare il plugin.

<html>
<head>
  <title>Attenzione! Upgrade del plugin necessario</title>
  <meta http-equiv="Content-Script-Type" content="text/javascript" />
  <script type="text/javascript" src="Dispatcher.js"></script>
  <script language="VBScript" src="Dispatcher.vbs"></script>
</head>

<body bgcolor="#eeeeee">
<img alt="" src="upgrade.gif" width="300" height="150" /><br /><br />

<a href="http://download.macromedia.com/[...]/swflash.cab" target="_self">
  scarica il plugin aggiornato dal sito della Macromedia
</a><br />

<a href="noflash.html" target="_self">visita la versione html del sito</a>
</body>
</html> 

download.html

Sono presenti due link: uno punta alla pagina di scaricamento del plugin sul sito della Macromedia, l'altro alla pagina noflash.html, nel caso in cui il visitatore non voglia scaricare il plugin.

<html>
<head>
 <title>Attenzione! Upgrade del plugin necessario</title>
 <meta http-equiv="Content-Script-Type" content="text/javascript" />
 <script type="text/javascript" SRC="Dispatcher.js"></script>
 <script language="VBScript" SRC="Dispatcher.vbs"></script>
</head>
<body bgcolor="#eeeeee">
<img alt="" src="download.gif" width="300" height="150" /><br /><br />
<a href="http://download.macromedia.com/[...]/swflash.cab" target="_self">
scarica il plugin aggiornato dal sito della Macromedia
</a><br />
<a href="noflash.html" target="_self" onclick="MM_FlashDemur()">
visita la versione html del sito (anche la prossima volta)
</a>
</body>
</html> 

La differenza rispetto alla pagina upgrade.html sta nel secondo link, quello alla pagina noflash.html. All'evento onclick relativo al collegamento, è associata l'esecuzione della funzione MM_FlashDemur(), definita all'interno del file Dispatcher.js (collegato nei tag <head>): poi ne vedremo il significato.

index.html

Vediamo adesso la pagina index.html (quella che nei file scaricati dal sito della Macromedia si chiamava enter.html): questo è il suo contenuto originale, e il suo aspetto grafico può essere modificato a piacimento. Ad esempio, è buona cosa inserire una scritta che avverta del rilevamento in corso: ma è anche conveniente non esagerare, dato che come pagina è sufficientemente pesante a causa di Dispatcher.js

All'interno dei tag <head> vediamo il collegamento ai file esterni "Dispatcher.js" e "Dispatcher.vbs", collegamenti che non vanno assolutamente toccati. Quindi, all'interno dei tag <body>, vediamo il richiamo alla funzione MM_FlashDispatch che attiva lo sniffer.

La funzione MM_FlashDispatch riceve nove parametri, che vediamo adesso uno ad uno (in questo file, modifica dell'originale, ho scritto accanto ad ogni parametro il suo numero e una brevissima descrizione).

1 • contentURL - pagina plugin ok

Una stringa contenente nome e percorso della pagina che viene caricata quando il plugin è presente nella versione richiesta: è la pagina principale del sito, ma viene aperta per seconda, dopo index.html

2 • contentVersion - versione richiesta

È una stringa contenente la versione del plugin richiesta (Es. "6.0")

3 • requireLatestRevision - ultima versione

Un valore booleano, true o false. Se è settato come true, viene verificata la presenza dell'ultima versione minore del plugin (Es. la 6.0.41 piuttosto che la 6.0.29 - da impostare in Dispatcher.js)

4 • upgradeURL - pagina upgrade

È una stringa contenente nome e percorso della pagina da caricare se il plugin è presente, ma in una versione inferiore a quella richiesta. Viene caricata se il browser non è in grado di aggiornare automaticamente il plugin, oppure se il nono parametro, disableAutoInstall, è settato come true: in caso contrario, infatti, viene caricata la pagina indicata da contentURL, e l'installazione avviene in background.

5 • futureInstall - installa in futuro

Torniamo un momento alla pagina download.html. Abbiamo visto come, tramite il link che porta alla pagina noflash.html, venga richiamata la funzione MM_FlashDemur(): questa funzione scrive, nella cache del browser, un cookie persistente per due mesi, e che poi viene richiamato dalla funzione per il detect.

Cosa ci dice l'esistenza del cookie (il suo contenuto non ci interessa)? Che l'utente non aveva il plugin, che è arrivato alla pagina download.html, e che nonostante questo ha scelto di guardare la versione html del sito. Per questo motivo, quando tornerà alla nostra index, questa verificherà l'esistenza del cookie, e in caso positivo, caricherà direttamente noflash.html senza passare per il detect e per la pagina download.html.

La funzione MM_FlashUserDemurred(), a questo punto, recupera il cookie e ci dice se l'

Ti consigliamo anche