Sono nuovo di zecca per lo sviluppo del telefono Windows dopo aver acquistato una settimana scorsa solo per questo scopo con Windows 8.1 appena rilasciato ^^.WindowsPhone 8.1 WebView non viene visualizzato?
Sto provando a seguire uno dei tutorial per principianti Microsoft creando uno Minibrowser, un'app molto semplice con una casella di testo, un pulsante e una visualizzazione Web. Mi rendo conto che questo è un tutorial per Windows Phone 8 ma ho capito che Windows 8.1 non può essere enormemente diverso?
Ho eseguito il tutorial fino alla fine ma sto avendo problemi con la webview che in realtà non mostra nulla.
il codice XAML per la visualizzazione della pagina è
<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>
e i gestori di eventi rilevanti per il pulsante e WebView sono
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);
}
}
posso vedere l'esecuzione della pagina che sia all'avvio e quando faccio clic sul pulsante vai, viene chiamato l'evento Navigazione completata quando viene visualizzato il messaggio Completo della navigazione, ma la pagina Web della xbox che è non dovrei caricare non è visibile.
Ho ottimizzato l'xaml che viene mostrato nella dimostrazione leggermente come si può vedere, quindi invece di avere una sola griglia ContentRoot, ho nidificato il pannello di stack orizzontale che contiene l'indirizzo TextBox e Button, con il WebView è sotto di esso.
Ho anche usato il WebView al contrario di telefono: WebBrowser come nel tutorial, dal momento che questo non sembra esistere in WP8.1, quindi questo potrebbe essere il problema ...
fa qualcuno sa che cosa sto facendo in modo errato, o qualcuno può commentare se lo stile che sto usando potrebbe essere migliorato in ogni caso.
L'apprendimento di una nuova piattaforma è sempre una sfida mentre cerchi di capire come le cose sono fatte in modo diverso; Windows Phone è sicuramente molto diverso da Android che mi è più familiare!
Grazie in anticipo
EDIT:
Ho provato a cambiare il codice XAML commentando quello che avevo per il contenuto della pagina (testo, pulsanti e webview) e inserendo il xaml esemplare dal tutorial come segue
<!--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>
ma ho esattamente lo stesso problema di prima dove il WebView è solo mostrando il nero, così come in genere cercando peggio ...
Suppongo che questo problema sia dovuto alle differenze tra il telefono previsto: WebBrowser e WebView che sto utilizzando.
Chiunque downvoted, mi farebbe piacere il momento preso per aggiungere un commento costruttivo a quello che pensavo fosse una domanda abbastanza chiara da parte di uno sviluppatore inesperto di Windows Phone – o0rebelious0o