我创建了一个WebBrowser,除了后退按钮后按下应用程序关闭后按钮,并且在历史记录中没有返回按钮。我该如何解决这个问题?我在互联网上找到了解决方案,但它们似乎没有用。
public MainPage()
{
this.InitializeComponent();
this.webBrowser.Navigate(new Uri("http://www.google.com", UriKind.Absolute));
this.webBrowser.LoadCompleted += webBrowser_LoadCompleted;
this.webBrowser.NavigationFailed += webBrowser_NavigationFailed;
this.webBrowser.IsScriptEnabled = true;
}
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
webBrowser.InvokeScript("eval", "history.go(-1)" );
}
P上。 S.:这不是整个剧本,但我认为其余的是不必要的,如果不告诉我:) P. P. S.:我是Windows Phone编程的新手。
答案 0 :(得分:5)
Web浏览器只是页面内的一个控件,如果只有一个页面,则按设备返回按钮会导航回上一页或退出应用程序。所以,你需要在后退键上停止页面导航按下这样的东西。
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
e.Cancel=true;
}
这可以防止回航
现在休息是转到上一页,可以通过
完成webBrowser.InvokeScript("eval", "history.go(-1)" );
所以事件变为
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
e.Cancel=true;
webBrowser.InvokeScript("eval", "history.go(-1)" );
}
答案 1 :(得分:0)
尝试:
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
WB1.InvokeScript("eval", "history.go(-1)");
e.Cancel = true;
}
当你覆盖OnBackKeyPress时,你没有执行e.Cancel = true;它会执行你的代码,但也会做正常的BackButton做的事 - NavigateBack,Exit App等等。但是你必须记住让用户退出你的应用程序或导航回来,所以更适合检查一些条件(例如你的webbrowser历史记录不为空),然后执行e.Canel,否则退出应用程序。< / p>
答案 2 :(得分:0)
要在根目录中退出应用程序(这样您就可以批准认证要求),并返回导航直到您位于根目录中,请尝试使用此
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
if (MiniBrowser.CanGoBack){
e.Cancel = true;
MiniBrowser.InvokeScript("eval", "history.go(-1)");
}
}