Che versione di Browser viene utilizzata dai controlli WebBrowser e WebView?


Dopo aver parlato di Hosted Web App e di app ibride (C#/XAML e JS/HTML), abbiamo ricevuto una domanda molto interessante, ovvero, quale versione del browser viene utilizzata come motore di rendering dai controlli WebBrowser (di Silverlight) e WebView (WinRT/UWP) su Windows Mobile 10 e su Windows 10, ovvero, viene utilizzato il motore di Microsoft Edge o quello di Internet Explorer? E quale versione specifica viene utilizzata?

In generale, la risposta alla domanda è molto semplice, i controlli WebBrowser e WebView utilizzano la versione del browser di *default* della piattaforma per cui sono stati compilati, tranne Microsoft Edge che utilizza sempre l’ultima versione installata. Per semplififcarvi la vita ecco una semplice tabellina:

Versione piattaforma Versione motore di rendering
WP 8.0 – Silverlight IEMobile 10.0
WP 8.1 – Silverlight IEMobile 11.0
Windows 8.0 - WinRT WebView 1.0 – basata sul motore di IE 10.0
Windows 8.1 e WP8.1- WinRT WebView 2.0 – basata sul motore di IE 11.0
Windows 10 (desktop e mobile) – UWP C# WebView 3.0 – basata sulla versione installata di Microsoft Edge
Windows 10 (desktop e mobile) – UWP JavaScript MSAppHost 3.0 - basata sulla versione installata di Microsoft Edge

Questa domanda si applica anche a strumenti come Cordova, che fino alla versione 3.x creava un progetto Silverlight/C# contenente il controllo WebBrowser, e che nelle ultime versioni invece crea progetti WinRT/UWP basati su WinJS/JavaScript anche per la parte di plugin, per cui a seconda della versione del container utilizzato (8.0/8.1 SL o 8.1/10 Universal) verrà utilizzato il motore indicato sopra

Se volte verificare con mano la versione utilizzata, potete provare a creare un semplice progetto di esempio, inserire un controllo phone:WebBrowser (in caso di Silverlight 8.0 o 8.1) o WebView (WinRT/UWP) e farlo navigare verso una pagina che mostra lo user agent.

I risultati nel mio caso sono stati i seguenti per  il controllo WebBrowser Silverlight su WP:

wp_ss_20160108_0002
App Silverlight 8.0 in esecuzione su Lumia 950 XL

wp_ss_20160108_0001
App Silverlight 8.1 in esecuzione su Lumia 950 XL

Come si vede lo user agent restituito dal controllo WebBrowser cambia in funzione del motore di rendering utilizzato, anche il rendering è leggermente diverso a livello di dimensione dei font.

Per quanto riguarda la WebView di WinRT i risultati sono i seguenti:

WinRT8.1

App Windows 8.1 su Surface Pro 3 con Windows 10 build 11082 Insider Preview, si noti il motore di IE 11 (Trident)

UWP_10

App Windows 10 Universal su Surface Pro 3 con Windows 10 build 11082 Insider Preview, si noti la versione di Edge allineata a quella del sistema operativo, nonostante l’app compilata per la versione 10240 di Windows 10.

E’ importante ricordare che la versione di Edge utilizzata dalla WebView di applicazioni UWP native Windows 10 (o dalle app Javascript, sempre Windows 10, incluse quelle fatte con Cordova) utilizzeranno sempre l’ultima versione di Edge installata sulla macchina, allineata agli ultimi standard Web.

Per distinguere tra app Windows 10 UWP realizzate in C# che usano una WebView e app UWP realizzate in JavaScript (o Hosted Web App) basta identificare WebView o MSAppHost nello user agent inviato ai siti.

Per maggiori approfondimenti lasciate pure un commento, oppure potete andare sull’apposito Forum MSDN.

-Lorenzo

Comments (0)

Skip to main content