Sviluppo di applicazione per smartphone con NFC per la ricarica di veicoli elettrici
Alessandro Bellotti - NFC: non solo pagamenti
-
Upload
girl-geek-dinners-milano -
Category
Documents
-
view
968 -
download
1
description
Transcript of Alessandro Bellotti - NFC: non solo pagamenti
UTILIZZO DEI TAG NFC PER MIGLIORARE LA GESTIONE DEI DATI IN AZIENDA IN MODO DA RIDURRE I COSTI AZIENDALI .
ALESSANDRO BELLOTTI @ZUKKA75B L A C K B E R RY E L I T E M E M B E R
10/09 /2013
NFC non solo pagamenti
Possibili utilizziScaricamento e pagamento su dispositivi portatili NFC,
attraverso computer o chioschi elettronici abilitati, di giochi, file MP3, video, software;
Scaricamento da un PC su di un dispositivo portatile, della prenotazione o acquisto di una permanenza in albergo, ingressi a cinema, teatri, stadi, viaggio in treno o aereo, e accesso al servizio comperato mediante il dispositivo stesso avvicinandolo o toccando il chiosco elettronico in albergo, al gate di ingresso o di partenza;
Scaricamento da un chiosco elettronico mediante scansione o contatto di informazioni addizionali, acquisto di una permanenza in albergo, ingressi a cinema, teatri, stadi, titolo di viaggio con mezzi urbani e accesso al servizio mediante il dispositivo stesso anche sui mezzi di trasporto urbano;
Possibili utilizzi (segue)Trasferimento e visualizzazione di fotografie da
una macchina fotografica o telefono cellulare NFC a un chiosco elettronico, televisione, computer per la visione o la stampa;
Trasferimento facilitato di file o messa in rete fra sistemi wireless;
Uso della tecnologia NFC per i sistemi di bigliettazione elettronica (nel 2011 a Milano è partita una sperimentazione che consente di utilizzare il cellulare per comprare e validare i biglietti dell'autobus o della metropolitana[15]).
Web WorksStruttura di un’applicazione base CONFIG.XML
Contiene le informazioni e le impostazioni dell’app.
INDEX.HTMLLa pagina di avvio dell’app
SCREEN.HTMLa Prima schermata visualizzata all’avvio dell’app
Risorse ufficiali
Sito Ufficiale BlackBerry HTML5/WebWorks
https://developer.blackberry.com/html5/
Gruppo FaceBook sviluppatori BB italianihttps://www.facebook.com/groups/bbdevsit
aly/
Sito, Forum e Blog del Gruppohttp://www.bbdevs.com/site/
Diagramma del PRJ
Web Server
Data OK
EXT Display
(Playbook) OK
Data Error
EXT Display
(Playbook) ERROR
BB10 App Server NFC
reader
NFC Data
BB10 App Employee
1
NFC Data
BB10 App Employee
2
NFC Data
BB10 App Employee
3
App lato Client
Leggere i dati dal Device (PIN)
Leggere i dati dall’appCreare il Tag UNIVOCOInvoke NFCAttendere la CallBack
Leggere i dati
CONFIG.XML
<rim:permissions> <rim:permit>
read_device_identifying_information</rim:permit>
</rim:permissions> <feature id="blackberry.identity" required="true"
version="1.0.0.0"/>INDEX.HTML
localStorage.setItem('imeiDevice',blackberry.identity.IMEI);
localStorage.setItem('imeiDevice',blackberry.identity.PIN);
localStorage.getItem(‘imeiDevice’);
Creazione del Tag Univoco
CONFIG.XML
<!-- Invoke-target deve essere univoco... --><rim:invoke-target id="com.alessandro.mirko.ww.a"><type>APPLICATION</type><filter><action>bb.action.OPEN</action><mime-type>application/vnd.rim.nfc.ndef</mime-type><property value="ndef://1,ndef://2,ndef://4"
var="uris" /></filter></rim:invoke-target>
Invoke NFC
var nfcData;function nfc() { var idEmp = localStorage.getItem('id'); var name = localStorage.getItem('name'); var surname = localStorage.getItem('surname'); if (idEmp != null & name != null & surname !=
null) { nfcData = idEmp + " " + name + " " + " " +
surname + " " + localStorage.getItem('imeiDevice');
// console.log('Data OK! Share via NFC: ' + nfcData);
invokeNFC(); }
Invoke NFC (segue)
else {try { blackberry.ui.dialog.standardAskAsync("Swipe down to access Option screen and setting your data", blackberry.ui.dialog.D_OK, dialogCallBack, {title : "Missing Data"});}catch (e) {var message = "Exception in standardDialog: " + e;
blackberry.ui.toast.show(message);}}
}
Invoke NFC (segue)
function onSuccess() {var message = "Invocation sucessful";
blackberry.ui.toast.show(message);}function onError(error) {
var message = 'Invocation error: ' + error; blackberry.ui.toast.show(message);}function invokeNFC() { blackberry.invoke.invoke({ target: "sys.NFCViewer", action: "bb.action.SHARE", type: "text/plain", data: String(nfcData) }, onSuccess, onError);}
CallBack
Due possibili soluzioni:
Callback di sistema:Messaggio Toast che avvisa del trasferimento riuscito
Callback NFC:Creando un tag NFC lato server ed inviarlo all’app Client
App lato Server
Leggere il TAG ricevutoGestire i datiInviare la CallBack all’App Client
Gestione del TAG
function ready() {try {
blackberry.event.addEventListener("invoked", onInvoked);
} catch (e) { alert(e);}
}window.addEventListener("load", function(e) {
document.addEventListener("webworksready", ready)}, false);
Segue …
// When a tag is read by the OS - this handler will be triggered.function onInvoked(onInvokedInfo) { if ("com.alessandro.mirko.ww.a" == onInvokedInfo.target
&& onInvokedInfo.data) {// Convert the bytes to records.var records = decodeRecords(onInvokedInfo.data);if (records.length > 0) {
var record = records[0];if (record.isType(WELL_KNOWN, "Sp")) {
alert("Read a smart poster\n" + record.getText() + "\n"
+ record.getURI());} else {
alert("Read a non smart poster...");}
} else {alert("Message contained no (decodable) records...");
}var output = document.getElementById("output");output.innerHTML = records[0].getEncodedAsHTML();
} else {alert("Didn't understand this invokation...");
}}
GRAZIE A TUTTI .
Domande?
SI RINGRAZIA:MIRKO AGRATI @MAGIRTIKO PER LA
COLLABORAZIONE AL PROGETTO.
IL MATERIALE (CODICE SORGENTE ED ALTRO) VERRÀ POSTATO NELLA SEZIONE TUTORIAL DEL
SITO HTTP: / /WWW.BBDEVS.COM/SITE/