2014-04-16 29 views
6

Ich bin brandneue Windows Phone Entwicklung, die eine letzte Woche nur für diesen Zweck mit Windows 8.1 gerade veröffentlicht ^^ gekauft hat.Windows Phone 8.1 WebView wird nicht angezeigt?

Ich versuche, eine der Microsoft Anfänger Tutorials eine Minibrowser erstellen, eine sehr einfache App mit einem Textfeld, Button und einem Webview. Ich realisiere, das ist ein Windows Phone 8 Tutorial, aber gemachte Windows 8.1 kann sicherlich nicht massiv anders sein?

Ich habe das Tutorial bis zum Ende durchgelaufen, aber ich habe Probleme mit dem Webview nicht wirklich etwas angezeigt.

Emulator Screenshot

XAML für die Seitenansicht ist

<Page 
    x:Class="MiniBrowser.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:MiniBrowser" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" 
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 

    <Grid x:Name="LayoutRoot"> 

     <Grid.ChildrenTransitions> 
      <TransitionCollection> 
       <EntranceThemeTransition/> 
      </TransitionCollection> 
     </Grid.ChildrenTransitions> 

     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"/> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 

     <!-- TitlePanel --> 
     <StackPanel Grid.Row="0" Margin="24,17,0,28"> 
      <TextBlock Text="My First Application" Style="{ThemeResource TitleTextBlockStyle}" Typography.Capitals="SmallCaps"/> 
      <TextBlock Text="Mini Browser" Margin="0,12,0,0" Style="{ThemeResource HeaderTextBlockStyle}"/> 
     </StackPanel> 

     <!--TODO: Content should be placed within the following grid--> 
     <StackPanel Grid.Row="1" x:Name="ContentRoot" Margin="12,0,12,12"> 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="*"/> 
        <ColumnDefinition Width="Auto"/> 
       </Grid.ColumnDefinitions> 
       <TextBox x:Name="URL" 
         Text="http://www.xbox.com" 
         TextWrapping="NoWrap" 
         Height="Auto" 
         Width="Auto" 
         HorizontalAlignment="Stretch" 
         VerticalAlignment="Center" 
         Margin="0,0,12,0"/> 
       <Button x:Name="Go" 
         Grid.Column="1" 
         Content="Go" 
         Height="Auto" 
         Width="Auto" 
         HorizontalAlignment="Stretch" 
         VerticalAlignment="Center" 
         Margin="12,0,0,0" 
         Click="Go_Click"/> 
      </Grid> 
      <WebView x:Name="MiniBrowser" 
        Height="Auto" 
        Width="Auto" 
        HorizontalAlignment="Stretch" 
        VerticalAlignment="Stretch" 
        ScrollViewer.ZoomMode="Disabled" 
        ScrollViewer.VerticalScrollBarVisibility="Disabled" 
        Loaded="MiniBrowser_Loaded" 
        NavigationFailed="MiniBrowser_NavigationFailed" NavigationCompleted="MiniBrowser_NavigationCompleted" 
        Visibility="Visible"/> 
     </StackPanel> 
    </Grid> 
</Page> 

und die entsprechenden Event-Handler für die Schaltfläche und Webansicht sind

private void Go_Click(object sender, RoutedEventArgs e) 
     { 
      String site = URL.Text; 
      MiniBrowser.Navigate(new Uri(site, UriKind.Absolute)); 
     } 

     private void MiniBrowser_Loaded(object sender, RoutedEventArgs e) 
     { 
      String site = URL.Text; 
      MiniBrowser.Navigate(new Uri(site, UriKind.Absolute)); 
     } 

     private void MiniBrowser_NavigationFailed(object sender, WebViewNavigationFailedEventArgs e) 
     { 
      ToastTemplateType toastTemplate = ToastTemplateType.ToastImageAndText01; 
      XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); 
      XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text"); 
      toastTextElements[0].AppendChild(toastXml.CreateTextNode("Hello World!")); 
      ToastNotification toast = new ToastNotification(toastXml); 
      ToastNotificationManager.CreateToastNotifier().Show(toast); 
     } 

     private void MiniBrowser_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args) 
     { 
      ToastTemplateType toastTemplate = ToastTemplateType.ToastImageAndText01; 
      XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); 
      XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text"); 
      toastTextElements[0].AppendChild(toastXml.CreateTextNode("Nav Complete")); 
      ToastNotification toast = new ToastNotification(toastXml); 
      ToastNotificationManager.CreateToastNotifier().Show(toast); 
     } 
    } 

ich vom Laufen die Seite sehen kann, dass beide Beim Start und wenn ich auf den Go-Button klicke, wird das Navigation Completed-Event aufgerufen, während der Nav Complete-Post erscheint, aber die xbox-Webseite, die s Das Laden ist nicht sichtbar.

Ich habe die XAML, die in der Demonstration gezeigt wird, leicht wie gesehen, also anstatt nur ein einzelnes ContentRoot-Raster, habe ich die horizontale Stack-Panel verschachtelt, die die Adresse TextBox und Button enthält, mit der WebView ist darunter.

habe ich auch verwendet, die WebView als zum Telefon gegen: WebBrowser wie im Tutorial, da dies nicht in WP8.1 zu existieren scheint, so ist dies auch das Problem sein könnte ...

Does Jeder weiß, was ich falsch mache, oder kann jemand kommentieren, wenn der Stil, den ich verwende, irgendwie verbessert werden könnte.

Eine neue Plattform zu lernen, ist immer eine Herausforderung, wenn Sie versuchen, die Dinge anders zu machen; Windows Phone ist sicherlich ganz anders als Android, mit dem ich mehr vertraut bin!

Vielen Dank im Voraus

EDIT:

ich durch Kommentare aus dem XAML-Code versucht, zu ändern, was ich für die Seiteninhalte (Textbox, Knopf und Webansicht) und Einsetzen des Exemplar XAML aus dem Tutorial hatte wie folgt

<!--ContentPanel - place additional content here--> 
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
    <TextBox x:Name="URL" Margin="10,10,85,0" Text="http://www.xbox.com" VerticalAlignment="Top"/> 
    <Button x:Name="Go" Content="Go" HorizontalAlignment="Right" Margin="346,10,0,0" VerticalAlignment="Top"/> 
    <phone:WebBrowser x:Name="MiniBrowser" Margin="10,82,0,0"/> 
</Grid> 

aber ich habe genau das gleiche Problem wie vorher, wo die Webansicht ist nur zeigt schwarz, sowie in der Regel sucht schlimmer ...

View of emulator with template xaml from tutorial

Ich vermute, dass dieses Problem aufgrund der Unterschiede zwischen dem erwarteten Telefon: WebBrowser und WebView, die ich verwende.

+0

Wer downvoted, ich die Zeit zu schätzen wissen würde wird genommen um einen konstruktiven Kommentar hinzuzufügen, was ich dachte, war eine etwas klare Frage von einem unerfahrenen Windows Phone Entwickler – o0rebelious0o

Antwort

6

Ich habe das Problem gefunden und behoben.Das Problem war, mit meiner Erklärung der Webansicht in XAML:

<WebView x:Name="MiniBrowser" 
     Height="Auto" 
     Width="Auto" 
     HorizontalAlignment="Stretch" 
     VerticalAlignment="Stretch" 
     ScrollViewer.ZoomMode="Disabled" 
     ScrollViewer.VerticalScrollBarVisibility="Disabled" 
     Loaded="MiniBrowser_Loaded" 
     NavigationFailed="MiniBrowser_NavigationFailed"   
     NavigationCompleted="MiniBrowser_NavigationCompleted" 
     Visibility="Visible"/> 

Durch sie

Ändern
<WebView x:Name="MiniBrowser" 
     Height="425" 
     HorizontalAlignment="Stretch" 
     VerticalAlignment="Stretch" 
     ScrollViewer.ZoomMode="Disabled" 
     ScrollViewer.VerticalScrollBarVisibility="Disabled" 
     Loaded="MiniBrowser_Loaded" 
     NavigationFailed="MiniBrowser_NavigationFailed" 
     NavigationCompleted="MiniBrowser_NavigationCompleted" 
     Visibility="Visible"/> 

es jetzt funktioniert. Erscheint das Problem mit der Verwendung von Height = "Auto". Dadurch wurde die Höhe auf 0 gesetzt, sodass sie nicht angezeigt wurde.

The application working and displaying correctly

+0

danke. das war hilfreich für mich – BBH1023

1

Ich weiß, das ist ein Telefon 8 Tutorial Fenster aber dachte, Fenster 8.1 nicht sicher massiv unterschiedlich sein können?

Sie führen ein Windows-Runtime- App, die eine Menge von verschiedenen Silverlight Apps ist, wie die von diesem Tutorial.

Wenn Sie für Windows Phone entwickeln wollen 8.1 (und Windows auch 8.1) Sie WinRT Tutorials folgen sollte, empfehle ich Ihnen diese:

http://channel9.msdn.com/Series/Windows-Phone-8-1-Development-for-Absolute-Beginners

Verwandte Themen