Vai al contenuto


Lief

WebView e WKWebView html5 schermo intero

Recommended Posts

Salve a tutti esperti di Swift.

Solitamente sono il tipo di persona che si intestardisce a trovare da solo le proprie risposte e nel weekend ho deciso di creare un piccolo browser in Swift con integrati alcun tool che prima usavo solo da riga di comando ma che sognavo di usare come se fossero plugin (in linea di massima dal mio browser passo gli argomenti ad un metodo C che semplicemente richiama system, ossia una specie di terminale che esegue il comando, in questo modo posso eseguire contemporaneamente programmi mentre navigo e tutto da interfaccia grafica al posto che da linea di comando), ma questa volta non so proprio che pesci pigliare.

 

Tutto funziona perfettamente (ed è la prima volta che uso Swift quasi seriamente quindi sono abbastanza soddisfatto, d'altronde è abbastanza semplice) tranne per un dettaglio... I video in html5 (tipo su youtube) non vanno a schermo intero anche se lo schermo intero in teoria è supportato (o così mi ha detto uno dei tanti siti che ho visitato ieri dove però il full screen html5 continuava a non funzionare).

Inizialmente non riuscivo a far funzionare neanche i plugin sulla nuova versione della webview (la wkwebview) ma poi ho scoperto come si attivano per puro caso (e almeno flash player funziona e va in fullscreen...), nel caso servisse a qualcuno si fa così:

webView.configuration.preferences.plugInsEnabled = true

 

Il codice di base che ho scritto per la wkwebview è veramente banale:

let urlString = urlFromFile
webView.load(URLRequest(url: URL(string: urlString!)!))

dove l'urlFromFile è una stringa che determina in pratica la home settata dall'utente e la webView è ovviamente

@IBOutlet weak var webView: WKWebView!

Nonostante abbia cercato nella documentazione ufficiale più e più volte non riesco a trovare nulla per autorizzare il full screen (neanche per la vecchia webview comunque).

La cosa strana è che su iOS un codice più o meno equivalente funziona perfettamente.


Forse è perchè l'app è racchiusa dentro un View Controller... non so onestamente (è comunque la prima volta che mi ci metto seriamente per quanto riguarda Swift... solitamente lavoro in Java o C# o, su web, in angular).

 

EDIT. Mi sono guardato intorno e pare che anche su JavaFX WebView e WebBrowser di Microsoft non abbiano questa funzionalità. Solo compilando chromium framework embedded versione java sono riuscito ad avere una sorta di fullscreen (comunque contenuto all'interno dell'app ma almeno non disabilitato). Il problema è che oltre a compilarlo non sono riuscito ancora ad integrarlo in un progetto Java eclipse (e non credo sia molto semplice da utilizzare). Riscrivere l'app in java non sarebbe un problema ma andare a capire anche come funziona j-cef è davvero troppo con il poco tempo che ho. Probabilmente questa funzionalità verrà implementata in un prossimo futuro (o almeno lo spero) nel frattempo se qualcuno trova una soluzione me lo faccia sapere. Io di tanto in tanto sperimenterò un po' con j-cef, se mai funzionerà tradurrò la mia attuale app da Swift a Java e poi si vedrà (in ogni caso il supporto multipiattaforma non sarebbe così immediato visto che uso librerie esterne compilate per mac).

Modificato da Lief

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti


Crea un account o accedi per lasciare un commento

You need to be a member in order to leave a comment

Crea un account

Iscriviti alla nostra comunità. È facile!

Crea un nuovo account

Accedi

Sei già iscritto? Accedi qui.

Accedi Ora

×