[英]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.