2015-11-05 80 views
2

我正在開發基於Javascript的網絡應用程序,並認爲我可以使用Android的WebView功能使其像實際應用程序一樣,因此我跳入Android Studio並簡化了WebView應用程序沒有任何Java知識,但問題是,無論何時我想返回並按下後退按鈕,頁面轉換之間,應用程序都會自動關閉。我找到了一些解決方案,但我不知道如何正確實施它們,所以你能幫助我嗎?這是我的WebView的FullscreenActivity.java代碼。後退按鈕將我踢出WebView上的應用程序

@Override 
protected void onPostCreate(Bundle savedInstanceState) { 
    super.onPostCreate(savedInstanceState); 

    WebView view = (WebView) this.findViewById(R.id.webView); 
    view.getSettings().setJavaScriptEnabled(true); 
    view.setWebViewClient(new ZeroBrowser()); 
    view.loadUrl("http://www.google.com"); 
} 

private class ZeroBrowserOverride extends WebViewClient implements ZeroBrowserOverride { 

    @Override 
    public boolean ShouldOverrideUrlLoading(WebView view, String Url){ 
     view.loadUrl(Url); 
     return true; 
    } 
} 

非常感謝!

+1

請到這裏http://stackoverflow.com/questions/6077141/how-to-go-back-to-previous-page-if-back-按鈕被按下在webview/9743841#9743841 – Emil

+0

@Boss非常感謝你,但實際上我已經閱讀了所有這些答案,但由於沒有Java經驗,所以我無法實現它們中的任何一個。實際上,我只是希望得到更深入的幫助。 – Leo

回答

2

你可以用這個試試。

WebView view ; //Global  

    @Override 
    protected void onPostCreate(Bundle savedInstanceState) { 
     super.onPostCreate(savedInstanceState); 

     view = (WebView) this.findViewById(R.id.webView); 
       view.getSettings().setJavaScriptEnabled(true); 
     view.setWebViewClient(new ZeroBrowser()); 
     view.loadUrl("http://www.google.com"); 
    } 

然後

@Override 
public void onBackPressed() { 
    if (view.canGoBack()) { 
     view.goBack(); 
    } else { 
     super.onBackPressed(); 
    } 
} 

How to go back to previous page if back button is pressed in WebView?

http://developer.android.com/intl/es/guide/webapps/webview.html

+1

它真的有效!你能解釋一下你在那裏做了什麼?非常感謝! :) – Leo

1

您可以檢查客戶的歷史記錄,以回到webview中。實現這樣的事情:

@Override 
public void onBackPressed() { 
    if (mWebView.canGoBack()) { 
     mWebView.goBack(); 
    } else { 
     super.onBackPressed(); 
    } 
} 
1

在你的WebView類(或父視圖)覆蓋聽衆:

@Override 
public boolean onKeyDown(final int keyCode, final KeyEvent event) { 
    // Check if the key event was the Back button and if there's history 
    if ((keyCode == KeyEvent.KEYCODE_BACK) && this.canGoBack()) { 
     this.goBack(); 
     return true; 
    } 
    // If it wasn't the Back key or there's no web page history, bubble up to the default 
    // system behavior (probably exit the activity) 
    return super.onKeyDown(keyCode, event); 
} 
+0

我試圖將這些行添加到我的WebView類中,但我認爲它無法識別那裏的函數..我知道我聽起來很沒有用,但正如我所說的,到目前爲止我沒有Java經驗......「錯誤: (14,55)錯誤:無法找到符號方法canGoBack()「我現在有這種類型的錯誤。 – Leo

+0

您的類是否擴展了WebView又名公共類MyWebView擴展了WebView?如果你把這個重寫放在你的主要活動中怎麼辦? – Rafouille

+0

其實它是WebViewClient,我認爲這是問題!上面的其他答案解決了我的問題,謝謝你的幫助! – Leo

相關問題