Windows Phone 8后退按钮返回Web浏览器

时间:2014-01-24 12:41:19

标签: c# windows-phone-8

我创建了一个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编程的新手。

3 个答案:

答案 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)");
    }
}