2015-11-05 3 views
2

Я разрабатываю веб-приложение на основе Javascript и думаю, что могу использовать возможность Android WebView, чтобы сделать его похожим на реальное приложение, поэтому я прыгнул прямо в Android Studio и сделал простой WebView приложение без каких-либо знаний Java, но проблема заключается в том, что между переходы между страницами, когда я хочу вернуться назад и нажмите кнопку «Назад», приложение закрывается. Я нашел некоторые решения, но я понятия не имею, как их правильно реализовать, так что вы можете мне помочь? Вот мои коды FullscreenActivity.java WebView.Задняя кнопка выводит меня из приложения на 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- button-is-press-in-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

Вы можете проверить историю клиентов, чтобы вернуться в веб-просмотр. Реализовать что-то вроде этого:

@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) error: не удается найти метод символов canGoBack() «У меня есть такие ошибки прямо сейчас. – Leo

+0

Является ли ваш класс расширяет WebView или общедоступным классом MyWebView расширяет WebView? Что, если вы поместите это переопределение в свою основную деятельность? – Rafouille

+0

На самом деле это был WebViewClient, и я думаю, что это была проблема! Другой ответ выше решил мою проблему, спасибо вам за вашу помощь! – Leo

Смежные вопросы