簡體   English   中英

Windows Phone 8的“后退”按鈕可在WebBrowser中返回

[英]Windows Phone 8 Back button to go back in WebBrowser

我制作了一個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)" );
}

PS:那不是整個腳本,但我認為其余內容都是不必要的,如果不告訴我:) PPS:我是Windows Phone編程的新手。

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

試着做:

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等。 但是您必須記住要讓用戶具有退出應用程序或向后導航的能力,因此檢查某些條件(例如,您的網絡瀏覽器歷史記錄不為null)然后執行e.Canel更為合適,否則請退出該應用程序。

要在根目錄中退出該應用程序(以便您可以批准認證要求),並且還可以返回導航,直到您在根目錄中為止,請嘗試此操作

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
    if (MiniBrowser.CanGoBack){
        e.Cancel = true;
        MiniBrowser.InvokeScript("eval", "history.go(-1)");
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM