Ci sono vari servizi che mettono a disposizione API per le previsioni meteo, e tra le varie a me piace molto OpenWeatherMap!

Con un account gratuito è possibile usare le API REST, con alcune limitazioni (poche in verità).

Quindi, prima di tutto iscrivetevi e copiatevi la vostra API KEY.

Dopo di che andate a visualizzare le varie possibilità a disposizione (sempre a questo link).

Ebbene si, anche con Javascript è possibile usare la webcam.

Ed è anche abbastanza semplice usando l'interfaccia MediaDevices dell'oggetto navigator, ed il metodo getUserMedia.

Qui un pò di documentazione su MediaDevices e getUserMedia.

La documentazione di Mozilla è sempre buona e abbastanza precisa.

Apache Cordova è un framework che ci permette di creare app mobile usando tecnologie web (Javascript e HTML).

Oggi vediamo come controllare la connessione disponibile nella nostra app.

Prima di tutto, dobbiamo installare un plugin apposito; lo possiamo fare così:

cd my_app
cordova plugin add cordova-plugin-network-information

(Questo dovrebbe aggiungere anche i permessi per le rispettive piattaforme).

Il Do Not Track è stata una bella idea, anche se tutti i browser specificano sempre che non è garantito che funzioni al 100%.

La preferenza del browser è inviata dal client al server tramite HTTP header, ma volendo possiamo vedere la preferenza anche attraverso Javscript.

Ad esempio potrebbe essere usato semplicemente come test, o per avvisare gli utenti.

Anche con Javascript è possibile identificare i dispositivi mobile.

Vi indicherò due modalità per farlo, di cui una più compatta e l'altra più specifica.

Comunque un entrambi i casi useremo l'oggetto navigator.

Questa la prima funzione:

function detectMobile() {
    if (navigator.userAgent.match(/Android/i)
            || navigator.userAgent.match(/webOS/i)
            || navigator.userAgent.match(/iPhone/i)
            || navigator.userAgent.match(/iPad/i)
            || navigator.userAgent.match(/iPod/i)
            || navigator.userAgent.match(/BlackBerry/i)
            || navigator.userAgent.match(/Windows Phone/i)
            ) {
        return true;
    } else {
        return false;
    }
}

Diciamo che si commenta da sola.