CAR: WKWebView su iOS
copia linkDescrizione
Ora la shell nativa per iOS utilizza la nuova WKWebView invece della UIWebView oramai obsoleta.
La shell nativa utilizza una apposita classe nativa di iOS per mostrare le applicazioni web (online ed offline). Fino alla versione 19.5 la shell nativa utilizzava la classe UIWebView.
Ora la classe UIWebView è stata dichiarata obsoleta da Apple che ha imposto questi vincoli:
- a partire da Aprile 2020 tutte le nuove applicazioni che utilizzano la classe UIWebView saranno rifiutate dall'AppStore
- entro Dicembre 2020 anche le vecchie applicazioni devono utilizzare la nuova classe WKWebView.
Funzionalità interessate
Lo sviluppo di applicazioni web all'interno della shell nativa per iOS.
Note
- Se sono stati personalizzati file del pacchetto di iOS occorre verificare quali modifiche sono state implementate e riseguire la personalizzazione a partire dai file presenti nella cartella del template.
- La classe WKWebView è diversa dalla classe UIWebView:
- la libreria Javascript utilizzata dalla classe UIWebView non era più aggiornata mentre quella della WKWebView è allineata all'ultima versione disponibile utilizzata da Chrome e Safari. Pertanto vari errori grafici sono ora "automaticamente" risolti
- il motore della nuova classe WKWebView è molto più veloce della corrispondente UIWebView perché beneficia dell'JIT compiler (Just In Time compiler), funzionalità che era disabilitata sulla UIWebView che, quindi, utilizzava sempre l'interprete. La WKWebView, invece, compila il javascript ed esegue il compilato, migliorando le performance delle applicazioni. L'aumento di prestazioni dipende dal codice eseguito: se il codice è "puro" javascript (quindi non query o interazione utente) le performance possono aumentare anche del 90% (es: un ciclo stretto in Javascript di un milione di cicli con concatenazione di stringhe poteva richiedere 8 secondi sulla UIWebView mentre richiede 600 ms sulla WKWebView). Se, invece, il codice conteneva query l'aumento può arrivare al 40-50% (es: un ciclo di 1000 query SELECT in transazione poteva richiedere 2 secondi sulla UIWebView e richiede ora 800 ms sulla WKWebView)
- la classe UIWebView non riusciva a realizzare più di 3500 oggetti DOM mentre la WKWebView arriva a 8500
- l'utilizzo della CPU della WKWebView è molto ridotto rispetto a quello usato dalla UIWebView a parità di struttura DOM e animazioni attivate. Pertanto le animazioni sono più fluide, veloci e, anche su dispositivi un po' datati, sono meno scattose.
Ultima modifica: 20/11/2020 / Validità: da 20.0.7800