让“后退”按钮在 webview 中工作时遇到问题。
我不确定我应该把 onKeyDown()
部分放在代码的什么地方(目前在最后一个 @Override
下)
mywebview.canGoBack()
和 mywebview.goBack()
都会导致错误“无法解析 mywebview”。
如果我将 mywebview.setWebClient(...)
之后的括号一直移动到底部,mywebview-error
就会消失,但随后 会覆盖
、onKeyDown
、return true
和 return super
会导致各种错误。
谁能告诉我该怎么做?
代码:
package com.sib;
import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class SiB extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sib);
WebView mywebview = (WebView) findViewById(R.id.webview);
mywebview.loadUrl("url");
WebSettings webSettings = mywebview.getSettings();
webSettings.setJavaScriptEnabled(true);
mywebview.setWebViewClient(new WebViewClient());
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mywebview.canGoBack()) {
mywebview.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
最佳答案
使mywebview
成为类实例变量。
public class SiB extends Activity {
WebView mywebview;
然后通过取出 onCreate()
中的声明确保不隐藏它它应该看起来像这样:
mywebview = (WebView) findViewById(R.id.webview);
mywebview.loadUrl("url");
并基于what I can find , Gabe 是对的。 onKeyDown()
用于后退按键仅适用于 API 4 及更低版本。 onBackPressed()
应该适用于比 API 4 更新的所有内容。
@Override
public void onBackPressed(){
if (mywebview.canGoBack()) {
mywebview.goBack();
return;
}
super.onBackPressed();
}
关于java - 为什么后退按钮在此 Android webview 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14900959/