2010-12-22 21 views
17

tengo la siguiente pregunta: tengo mi teléfono 7 appplication de Windows y tengo una HyperlinkButton con el NavigateUri binded a un Uri creado de esta manera:Windows Phone 7 de navegación a Internet desde una aplicación

Uri uri = new Uri("http://google/ro",UriKind.Ablosute) 

pero cuando se presiona el botón me sale el siguiente error:

navegación sólo se admite a URIs relativos que son fragmentos, o comienzan con '/', o que contengan '; componente /' \ r \ nParameter nombre.: uri

¿Qué hice mal? ¿O es el WP7 que no permite navegar en Internet desde una aplicación con un HyperlinkButton? Desde cuando creo el uri como Uri uri = new Uri("/Page.xaml",UriKind.Relative) me redirige a Page.xaml en el proyecto.

Respuesta

3

No puede usar el sistema de navegación del teléfono para navegar a la web (¿dónde espera que se muestre?). Pero puede usar el control del navegador web para mostrar páginas web en su aplicación. Ver este example

También podría utilizar un Web Browser Task algo en la línea de

WebBrowserTask wtb = new WebBrowserTask(); 
wtb.Uri = new Uri("http://www.google.com", UriKind.Absolute); 
wtb.Show(); 
+0

Para mayor claridad, debe llamar como en el controlador de evento 'Click' para el botón de hipervínculo. –

34

he encontrado una solución bastante extraño que corrige esto. Simplemente agregue una propiedad TargetName = "_ blank" a su control HyperlinkButton, y mágicamente comienza a funcionar.

<HyperlinkButton Content="Google" NavigateUri="http://google.com" TargetName="_blank" /> 

Chris

+0

Esto se comporta de forma similar a WebBrowserTask. http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series/thread/98fefb30-a9f9-4a5f-9942-6965cb2f2e3c –

+2

+1 para el espacio en blanco! Parece bastante extraño que esto funcione ... –

+0

Funciona para mí también, extraño :). –

0

El URL es obsoleto. Use Uri, como abajo.

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    WebBrowserTask wtb = new WebBrowserTask(); 
    wtb.Uri = new Uri("http://www.google.com", UriKind.Absolute); 
    wtb.Show();   
}