Este documento describe cómo usar el control WebBrowser en aplicaciones de Windows Phone para mostrar contenido web de diferentes formas. Explica cómo mostrar páginas web estáticas y dinámicas, modificar el zoom, y consideraciones de seguridad al usar el control. También proporciona recursos adicionales para desarrolladores de Windows Phone.
1. 11/07/2011
Control Web Browser
Basado en la versión Silverlight para escritorio
Usos comunes
Mostrar contenido web de la red
Mostrar contenido web estático
Mostrar contenido web generado dinámicamente en la
aplicación
Ejecución de scripts
IsScriptEnabled = true
Recuperación de cookies de un sitio web
GetCookies(WebBrowser)
Seguridad y buenas prácticas Seguridad y buenas prácticas
NavigateToString(String) no tiene restricciones de No permite ver URLs con el icono de seguridad
sitios cruzados. El contenido cargado de la web sí. No se puede navegar desde páginas https a http.
Tener cuidado al cargar contenido que no sea de confianza
No permite compartir cookies de la aplicación con
El control WebBrowser no debería utilizarse como Internet Explorer Mobile.
navegador de propósito general, la API no aporta toda Ejecución de scripts deshabilitada por defecto
la seguridad necesaria.
IsScriptEnabled = true
1
2. 11/07/2011
Diferencias WebBrowser de Cómo mostrar contenido web de la
escritorio y Windows Phone red
En XAML
<phone:WebBrowser Source="http://www.bing.com" />
Acceso a
almacenamiento aislado En código
webBrowser1.Source = new Uri("http://www.bing.com",
Muestra HTML UriKind.Absolute);
Permite navegación en
webBrowser1.Navigate(new Uri("http://www.bing.com",
el sitio UriKind.Absolute));
(al hacer clic en un enlace no se
cambia la página que se muestra
Al realizar una llamada a un método de webBrowser,
en el control) se lanza la excepción InvalidOperationException si el
Control HtmlBrush control no está aún en el árbol visual.
Controles ActiveX Realizar la llamada en el método Loaded del control.
Cómo mostrar contenido web Cómo mostrar contenido web
estático generado dinámicamente
Se puede mostrar contenido web estático Se puede mostrar contenido web generado
almacenado, por ejemplo, en el almacenamiento dinámicamente utilizando NavigateToString(String)
aislado.
Carga de contenido estático webBrowser1.Loaded += WebBrowser_OnLoaded;
Si readme.htm es un fichero almacenado en el private void WebBrowser_OnLoaded(object sender,
almacenamiento aislado de la aplicación RoutedEventArgs e)
{
webBrowser1.Loaded += WebBrowser_OnLoaded; webBrowser1.NavigateToString("<html><head><meta
private void WebBrowser_OnLoaded(object sender, RoutedEventArgs e) name='viewport' content='width=480, user-scalable=yes'
{ /></head><body>HTML Text</body></html>");
webBrowser1.Navigate(new Uri("readme.htm", UriKind.Relative)); }
}
2
3. 11/07/2011
Modificar el zoom del WebBrowser Modificar el zoom del WebBrowser
Los últimos navegadores móviles utilizan la etiqueta Añadir la meta etiqueta en la cabecera con
Viewport NavigateToString(String)
Indica cómo se distribuye el contenido de una página Windows Phone 7 establece un valor de 320 si se selecciona
“device-width” y hace zoom para adaptar el contenido al ancho
width Ancho en píxeles de 320 a 10000.
“device-width” lo ajusta de forma automática.
especificado si se rota la pantalla.
height Altura en píxeles de 480 a 10000.
“device-height” lo ajusta de forma automática. <html><head>
user-scalable Indica si el usuario puede hacer zoom. Valores “yes” o “no”.
<meta name='Viewport' content='width=320;
initial-scale Escala inicial de 0.1 a 10.0.
initial-scale=10.0'/>
minimum-scale Escala mínima permitida de 0.1 a 10.0. </head></html>
maximum-scale Escala máxima permitida de 0.1 a 10.0.
Recursos
Centro de desarrollo de WP7 en MSDN
http://msdn.microsoft.com/es-es/windowsphone/default.aspx
AppHub
http://create.msdn.com/
Windows Phone Developer Blog
http://windowsteamblog.com/windows_phone/b/wpdev
MobileNUG
http://www.mobilenug.es
Forums
http://forums.create.msdn.com/forums/
3