我正在开发一个基于Javascript的网络应用程序,并认为我可以使用Android的WebView
能力使其像真正的应用程序一样,所以我直接进入Android Studio并做了一个简单的WebView
应用程序没有任何Java知识,但问题是,在页面转换之间,每当我想返回并点击后退按钮时,应用程序自行关闭。我找到了一些解决方案,但我不知道如何正确实施它们,所以你能帮我吗?以下是我的WebView的FullscreenActivity.java
代码。
@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;
}
}
非常感谢你!
答案 0 :(得分: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 :(得分:1)
您可以查看客户历史记录,以便在webview中返回。实现这样的东西:
@Override
public void onBackPressed() {
if (mWebView.canGoBack()) {
mWebView.goBack();
} else {
super.onBackPressed();
}
}
答案 2 :(得分: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);
}