Bouton de retour sur Windows Phone 8
Je vais avoir du mal à obtenir le matériel retour bouton pour faire ce que je voudrais qu'il fasse pour Windows Phone 8. L'application est strictement juste webview, de sorte que, désormais, lorsqu'un retour (matériel) bouton est cliqué, il ferme l'application. Comment puis-je contourner ce donc, il va à la précédente page web ou remonte à l'indice ou quelque chose sur ces lignes?
Grâce
C'est ce que j'ai actuellement sur la page principale.xaml.cs fichier
namespace AvoidDiabetes
{
public partial class MainPage : PhoneApplicationPage
{
//Url of Home page
private string MainUri = "/Html/index.html";
private Stack<Uri> _history = new Stack<Uri>();
private Uri _current = null;
//Constructor
public MainPage()
{
InitializeComponent();
}
private void Browser_Loaded(object sender, RoutedEventArgs e)
{
//Add your URL here
Browser.Navigate(new Uri(MainUri, UriKind.Relative));
Browser.IsScriptEnabled = true;
}
//Navigates back in the web browser's navigation stack, not the applications.
private void BackApplicationBar_Click(object sender, EventArgs e)
{
Browser.GoBack();
}
//Navigates forward in the web browser's navigation stack, not the applications.
private void ForwardApplicationBar_Click(object sender, EventArgs e)
{
Browser.GoForward();
}
//Navigates to the initial "home" page.
private void HomeMenuItem_Click(object sender, EventArgs e)
{
Browser.Navigate(new Uri(MainUri, UriKind.Relative));
}
//Handle navigation failures.
private void Browser_NavigationFailed(object sender, System.Windows.Navigation.NavigationFailedEventArgs e)
{
MessageBox.Show("Navigation to this page failed, check your internet connection");
}
protected override void OnBackKeyPress(CancelEventArgs e)
{
base.OnBackKeyPress(e);
if (_history.Count == 0)
{
//No history, allow the back button
//Or do whatever you need to do, like navigate the application page
return;
}
//Otherwise, if this isn't the first navigation, push the current
else
{
Browser.GoBack();
}
}
private async void WebBrowser_Navigated(object sender, NavigationEventArgs e)
{
//If we navigated back, pop the last entry
if (_history.Count > 0 && _history.Peek() == e.Uri)
{
_history.Pop();
}
//Otherwise, if this isn't the first navigation, push the current
else if (_current != null)
{
_history.Push(_current);
}
//The current page is now the one we've navigated to
_current = e.Uri;
}
}
}
OriginalL'auteur NeededApps | 2013-01-31
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de remplacer OnBackKeyPress dans votre page de l'application et de gérer la navigation de la WebBrowser contrôle de retour à la page précédente.
En supposant que vous êtes à l'aide de C#, voici à peu près comment vous pourriez le faire (crochet WebBrowser_Navigated à votre Navigateur de Naviguer de l'événement):
Merci. A très bien fonctionné. Avoir une prime (en 4 heures), mon plaisir 🙂
Merci beaucoup, mais je suis désolé, mais je suis assez nouveau dans la programmation et un peu perdu. Quand je l'ai ajouté dans mes web browswer de naviguer de page j'ai eu du mal avec le CancelEventArgs événement est soulignée comme une erreur. Toutes les suggestions?
Êtes-vous à "utilisation du Système.ComponentModel;" dans le fichier source?
En haut du fichier, vous devez voir les autres instructions d'utilisation. Si celui-ci est manquant, vous avez besoin de l'ajouter. Il informe le compilateur à la recherche de l'espace de noms pour résoudre le CancelEventArgs type.
OriginalL'auteur Peter Huene
cela a fonctionné avec moi,
vous pouvez vérifier si le navigateur.CanGoBack()
si à true, l'aller retour d'autre juste retour
OriginalL'auteur Bassem Samy