windows-phone-8 – Windows Phone 8上的后退按钮
发布时间:2020-12-14 04:16:28 所属栏目:Windows 来源:网络整理
导读:我无法获得后面的硬件按钮来执行我希望它为 Windows Phone 8执行的操作.该应用程序严格来说只是webview,所以截至现在当单击后退(硬件)按钮时它会关闭应用程序.我如何解决这个问题,以便进入上一个网页或返回索引或其他内容? 谢谢 这是我目前在MainPage.xaml.
我无法获得后面的硬件按钮来执行我希望它为
Windows Phone 8执行的操作.该应用程序严格来说只是webview,所以截至现在当单击后退(硬件)按钮时它会关闭应用程序.我如何解决这个问题,以便进入上一个网页或返回索引或其他内容?
谢谢 这是我目前在MainPage.xaml.cs文件中的内容 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,push the current else if (_current != null) { _history.Push(_current); } // The current page is now the one we've navigated to _current = e.Uri; } } }
您需要在应用程序页面中覆盖
OnBackKeyPress并处理将
WebBrowser控件导航回上一页.
假设您正在使用C#,这里大概是如何做到的(将WebBrowser_Navigated连接到WebBrowser的Navigated事件): private Stack<Uri> _history = new Stack<Uri>(); private Uri _current = null; 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; } // Cancel the back button press e.Cancel = true; // Navigate to the last page Browser.Navigate(_history.Peek()); } 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,push the current else if (_current != null) { _history.Push(_current); } // The current page is now the one we've navigated to _current = e.Uri; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Windows系统下WEB服务器权限的设置详解(一)
- windows – 如何在Golang中构建二进制包?
- windows-cluster – 如何使群集感知的Windows服务具有高可用
- 【ZT】iSpring Free Cam – 免费易用的「录制屏幕」工具 [W
- windows-server-2003 – IIS6:Web站点提供错误的SSL证书
- Windows下编译PHP5.4和xdebug全记录
- Windows – 如何使用MinGW编译和使用GLib
- windows – 将socket.io脱机安装
- .net – ‘System.Windows.Data.Binding’类型的对象无法转
- windows-server-2008 – 如何通过Win Server 2008上的防火墙
推荐文章
站长推荐
热点阅读