iphone Web Applications Paolo Sangregorio www.limecoding.com info@limecoding.com



Похожие документы
Indice generale. Introduzione...xv. Parte I Per iniziare Capitolo 1 Introduzione allo sviluppo ios con tecnologie web...3

19. LA PROGRAMMAZIONE LATO SERVER

ISTRUZIONI OPERATIVE AGGIORNAMENTO DEL 18/04/2013

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

HTML HTML. HyperText Markup Language. Struttura di un documento. Gli elementi essenziali di un documento HTML sono i seguenti TAG: <HTML>...

Istruzioni operative (v. 1.01) Servizio MB - Mobile Banking Banca Passadore

Guida all'uso del CMS (Content Management System, Sistema di Gestione dei Contenuti)

ALL FOR SCAN Versione Twain Manuale Utente. Versione 2.0A00. Luccarelli Srl

Esempio Cookie Policy

Guida all uso delle Web View su ios

I Tag dell html. Parte quarta

Linguaggio HTML. Reti. Il Linguaggio HTML. Il Linguaggio HTML

Gli allarmi che possono essere inseriti sono di tre tipi diversi:

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

Esercizi di JavaScript

SMART. pag. 2 pag. 3 pag. 4 pag. 5 pag. 6 pag. 6 pag. 7 pag. 8 pag. 9 pag. 9 pag. 12 pag. 14 pag. 15 pag. 15 pag. 16

GERARCHIE RICORSIVE - SQL SERVER 2008

Web Intelligence. Argomenti 10/5/2010.

INFORMATIVA ESTESA SULL USO DEI COOKIE

WEBGATE400 ACTIVEX CONTROL. Manuale Programmatore

Corso Creare Siti WEB

Informativa estesa sull utilizzo dei cookie

Form Editor. Dove NomeProfilo è personalizzabile.

APP - myavsalarm ABC - INSTALLATORE

View Mobile User s Guide

Guida all'installazione ed uso dell'app FreeIP

Copia tramite vetro dello scanner

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

PHONOTTO. User Manual. Versione 0.90

Il seguente Syllabus è relativo al Modulo 7, Reti informatiche, e fornisce i fondamenti per il test di tipo pratico relativo a questo modulo

Do-Dots Protocollo di comunicazione

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server

Linguaggio JavaScript

Accesso a basi di dati con ASP. Algoritmo per visualizzare un DB

Presentation. Scopi del modulo

Installazione MS SQL Express e utilizzo con progetti PHMI

Come distribuire in una pagina Web il video ripreso con la telecamera

Cookie Policy per

Z3 B1 Message Addon Invio Massivo Documenti via e Fax per SAP Business One

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia

Guida informativa. CD Software e documentazione. Pagine della Guida. Sito Web Lexmark. Altre lingue. Istruzioni di installazione

L architettura del sistema può essere schematizzata in modo semplificato dalla figura che segue.

Firma Digitale Remota

Obiettivi del corso. Creare, modificare e formattare un semplice database costituito da tabelle, query, maschere e report utilizzando Access 2000.

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Qlik Sense Desktop. Qlik Sense 1.1 Copyright QlikTech International AB. Tutti i diritti riservati.

ARCHIVIA PLUS - ARCHIFILE

PLANET GYM IL PIANETA DEL FITNESS. Emanuele Cesari Anno scolastico 2013/2014 Agostino bassi 4D SIA Relazione palestra

Linguaggio HTML (2) Attributi di <FONT> Per variare lo stile di carattere rispetto al default, si possono utilizzare tre attributi:

Gestione home page. Intranet -> Ambiente Halley -> Gestione homepage

GUIDA ALL UTILIZZO DEL PORTALE DELLA RETE DEI COMUNI OGLIO PO

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

SMS API. Documentazione Tecnica YouSMS HTTP API. YouSMS Evet Limited

APP SECURKEYPAD ANDROID Manuale Edizione 1.0

Documentazione. Divisione Sicurezza Dati

APPUNTI DI HTML (TERZA LEZIONE)

Cookie e Webstorage. Vediamo ora i metodi dell oggetto localstorage. Per memorizzare un valore si utilizza il metodo setitem:

Esploriamo Javascript! 1 di Ivan Venuti

ICARO Terminal Server per Aprile

EUROPEAN COMPUTER DRIVING LICENCE SYLLABUS VERSIONE 5.0

Manuale utente per sorveglianza mobile

HikVision. Creazione e gestione di collegamenti con sistemi TVCC HikVision DVR/Network Camera

Utilizzo della APP IrriframeVoice. Versione 1.0 maggio 2015

WEBGIS 1.0. Guida per l utente

ALTRO. v (Aprile 2015)

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Corso basi di dati Installazione e gestione di PWS

PMF Integration Tools

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

SCENARI. v (Maggio 2015)

Manuale LiveBox WEB ADMIN.

IRSplit. Istruzioni d uso 07/10-01 PC

Al giorno d oggi, i sistemi per la gestione di database

POLITICHE Istruzioni per l invio telematico dei dati delle votazioni

Versione /10. Xerox ColorQube 9301/9302/9303 Servizi Internet

VntRAS Communication Suite

Esercitazione 8. Basi di dati e web

Javascript. Politecnico di Milano Facoltà del Design Bovisa Elementi di Informatica e Reti di calcolatori

Attacchi alle applicazioni web: SQL injection e Cross-site scripting (XSS)

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

SIEMENS GIGASET S450 IP GUIDA ALLA CONFIGURAZIONE EUTELIAVOIP

SPECIFICHE STANDARD PER TUTTI I SITI

Integrazione InfiniteCRM - MailUp

Il menu File contiene tutti i comandi relativi alle seguenti operazioni:

Wildix Kite. Guida Rapida

Manuale d Uso di Mailchimp:

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

SMIL: Synchronized Multimedia Integration Language

Settaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template.

Manuale Terminal Manager 2.0

Транскрипт:

iphone Web Applications Paolo Sangregorio www.limecoding.com info@limecoding.com

Contenuti web su iphone Due livelli Compatibile Web Application

Compatibilità

Contenuti Web Compatibili su iphone Nessun Plug-in! <object> <embed src= movies/mymovie.swf loop= false quality= high height= 100 width= 450 > </object>

Realizzare Contenuti Web Compatibili Tecniche Fornire contenuti di fall-back <object> <img src= images/movie.png /> <embed src= movies/mymovie.swf loop= false quality= high height= 100 width= 450 > </object> Javascript, CSS Animations, HTML5

Ottimizzare i Contenuti per Mobile Safari Personalizzare la Viewport Specificare la larghezza della pagina <meta name= viewport content= width=760 /> Costante predefinita per Web Applications <meta name= viewport content= width=devicewidth />

Ottimizzare i Contenuti per Mobile Safari Personalizzare la Viewport width height initial-scale minimum-scale maximum-scale user-scalable - yes zoom attivo - no zoom non attivo

Ottimizzare i Contenuti per Mobile Safari Individuazione dei numeri di telefono Attivare individuazione e linking automatico <meta name= format-detection content= telephone=yes />

Ottimizzare i Contenuti per Mobile Safari Custom keyboards Tastiera dinamica in base al tipo di input <input name= field type= text /> Altri tipi di input number tel email url

Ottimizzare i Contenuti per Mobile Safari Proprietà dei campi nei form Disabilitare autocorrect e autocapitalize Consigliato nei campi username e password <input type= text name= username autocorrect= off autocapitalize= off /> Rendere campi dei form descrittivi <input type= text name= username placeholder= Nome />

Sviluppare iphone Web Applications

Example http://169.254.16.70/jqtouch/todo_example

Sviluppare iphone Web Applications Tools Javascript Basato su jquery AJAX http://jqtouch.com/ CSS Classi predefinite iphone UI

Sviluppare iphone Web Applications jqtouch setup Download di jqtouch da http://jqtouch.com

Sviluppare iphone Web Applications jqtouch setup Inclusione nel documento HTML <head> <script src="jqtouch/jquery.1.3.2.min.js" type="text/javascript"></script> <script src="jqtouch/jqtouch.min.js" type="text/javascript"></script> <link rel="stylesheet" href="jqtouch/jqtouch.min.css" type="text/css"> <link rel="stylesheet" href="themes/apple/theme.css" type="text/css"> </head> Inizializzazione <head>... <link rel="stylesheet" href="themes/apple/theme.css" type="text/css"> <script type="text/javascript"> jqt = jquery.jqtouch(); </script> </head>

Sviluppare iphone Web Applications Principi Ogni pagina deve essere contenuta in un div con id univoco <body> <div id= home >... </div> </body>

Classi predefinite jqtouch Toolbar <div class="toolbar"> <a class="button back">back</a> <h1>title</h1> <a class="button add">+</a> </div> bluebutton

Classi predefinite jqtouch Rounded lists <ul class="rounded"> <li>first item</li> <li>item with counter <small class="counter">3</small></li> <li class="arrow"><a>item with link</a></li> </ul>

Classi predefinite jqtouch Edge-to-edge lists <ul class="edgetoedge"> <h4>a</h4> <li><a>antonio</a></li> <li><a>alice</a></li>... </ul>

Classi predefinite jqtouch Toggle button <div class="toggle"><input type="checkbox"/></div>

Link ad altre pagine Effetti e transizioni Effetto slide di default <a href= other_page.htm >Go to other page</a> Altri effetti <a href= other_page.htm class= flip >Go..</a> slideup dissolve fade flip pop swap cube

Integrazione con ios

Mail

Integrazione con ios Creare una mail Personalizzare subject, destinatari e contenuto <a href="#" onclick="location.href='mailto:address@server. com?cc=ex@ample.net&subject=subject&body=body text'">address@server.com</a>

Phone

Integrazione con ios Avviare una telefonata Avviare una telefonata tramite link <a href="#" onclick="location.href='tel: 3332331382'">Call now</a>

YouTube

Integrazione con ios Aprire il player per i video YouTube Link a video YouTube <a href="#" onclick="location.href='http:// www.youtube.com/watch?v=uf8ur6z6klc'">watch now</a>

Sms

Integrazione con ios Inviare un sms Preimpostare il destinatario del sms <a href="#" onclick="location.href='sms: 3332331382'">Send a message</a>

Maps

Integrazione con ios Visualizzare mappe Aprire Google maps ad una specifica posizione <a href="#" onclick="location.href='http:// maps.google.com/?ie=utf8&ll=... ">ITIS Paleocapa MAP</a>

Demo TO DO Web Application

Home Screen Icon Aggiungere Web Applications alla home screen

Web Applications Fullscreen mode Verificare se la Web Application è eseguita in fullscreen mode window.navigator.standalone

Home Screen Icon Personalizzare l icona Application icon Salvare l icona con il nome apple-touch-icon.png nella root directory del web server Icona per la singola pagina <link rel= apple-touch-icon href= icon.png />

Home Screen Icon Personalizzare l icona Linee guida Dimensioni 57 x 57 px No bordi arrotondati Nessun riflesso

Web Applications Immagine di startup Impostare una immagine di startup <link rel= apple-touch-startup-image href= startup.png /> Dimensioni: - larghezza: 320px - altezza: 460px

Web Applications Personalizzare la status bar Diversi tipi di status bar grey (default) black black translucent <meta name= apple-mobile-web-app-status-bar-style content= black /> Se si utilizza jqtouch basta settare la proprietà statusbar jqt = jquery.jqtouch({statusbar: black });

Web Applications Intercettare cambio di orientamento Collegare un evento al body <body onorientationchange= handleorientationchange() > Leggere l orientamento del dispositivo function handleorientationchange() { switch(window.orientation) { case 0: alert( Telefono in verticale ); case -90: alert( Telefono in orizzontale, girato in senso orario ); case 90: alert( Telefono in orizzontale, girato in senso antiorario ); } }

Touch Events

Example http://169.254.16.70/jqtouch/tevents_example.htm

Web Applications Touch Events touchstart touchmove touchend touchcancel

Web Applications Handling Touch Events Collegare un TouchEvent ad un elemento <body ontouchmove= handletouch(event) > Leggere la posizione del tocco function handletouch(event) { event.preventdefault(); alert( Hai iniziato a trascinare alle coordinate + event.touches[0].screenx +, + event.touches[0].screeny); } Altre proprietà di TouchEvent - pagex, pagey - clientx, clienty

Web Applications Multi-touch Events gesturestart touchstart gesturechange gestureend touchcancel

Web Applications Handling Multi-touch Events Collegare un GestureEvent ad un elemento <body ongesturestart= handlegesture(event) > Leggere i dati relativi alla gesture function handlegesture(event) { event.preventdefault(); alert( Hai ruotato di + event.rotation + e scalato di + event.scale); }

Web Applications Handling Multi-touch Events Proprietà -scale Distanza tra le due dita dall inizio della gesture definita come moltiplicatore della distanza iniziale Lo scale iniziale è 1.0 - scale < 1.0 = Pinch (zoom out) - scale > 1.0 = Zoom (zoom in)

Web Applications Handling Multi-touch Events Proprietà -rotation Rotazione differenziale rispetto all inizio della gesture misurata in gradi La rotation iniziale è 0.0 - rotation > 0 = rotazione in senso orario - rotation < 1.0 = rotazione in senso anti-orario

Demo Utilizzo di Touch e Gesture events

HTML5 Local Storage

HTML5 Databases Funzioni e caratteristiche Limitazione delle operazioni sul network - Maggiore fluidità dell applicazione - Maggiore durata della batteria Accesso offline ai dati SQL

HTML5 Databases Utilizzo delle SQL API Creazione di un database if (window.opendatabase) { // verifica se il browser supporta i db HTML5 name = ToDo ; version = 1.0 ; displayname = ToDo App ; expectedsize = 2500000; // nome del database sul disco // versione del database // nome visualizzato nella UI // in bytes db = opendatabase(name, version, displayname, expectedsize); } else { // fallback }

Transazioni Una transazione è una sequenza di operazioni che non può essere eseguita solo parzialmente. Se una operazione all interno della transazione fallisce, tutte le operazioni eseguite in quella stessa transazione sono annullate (rollback) - Le query devono necessariamente essere parte di una transazione

HTML5 Databases Utilizzo delle SQL API Esecuzione di una transazione function createtables() { } db.transaction( function(tx) { tx.executesql( CREATE TABLE ToDoItems (id INTEGER, value TEXT, done BOOL) ); } );

HTML5 Databases Callbacks Transaction Callbacks Callback di completamento Callback di errore Query Callbacks Data Callbacks - Manipolazione dei dati restituiti dalla query Callback di errore - Permette di proseguire la transazione anche se una query fallisce - Se non sono specificate callbacks di errore, tutti gli errori sono considerati fatali

HTML5 Databases Query Callbacks function errorhandler(tx, error) { alert(error.message + Error code: + error.code); } var we_think_this_error_is_fatal = true; if (we_think_this_error_is_fatal) return true; return false; function datahandler(tx, results) { for (var i=0; i<results.rows.length; i++) { var row = results.rows.item(i); string = string + row['value'] + " (ID "+row['id']+")\n"; } alert(string); } db.transaction(function(tx) { }); tx.executesql( SELECT * FROM ToDoItems, [], datahandler, errorhandler);

Offline Web Applications Utilizzo del Cache Manifest Lista di URLs memorizzata nel file mymanifest.manifest CACHE MANIFEST http://www.mytodoapp.com/index.html scripts/main.js images/myimage.jpg CACHE: # Contenuti da scaricare solo se non in cache (default) images/image.jpg NETWORK: # Contenuti da scaricare ogni volta dalla rete forecasts.htm

Offline Web Applications Utilizzo del Cache Manifest Collegare il file manifest al documento html <html manifest= mymanifest.manifest > Modificare.htaccess per servire files con mime type text/cache-manifest AddType text/cache-manifest.manifest

Demo TO DO Web Application with databases