Android WebView未注册onclick javascript链接

Android WebView未注册onclick javascript链接,android,android-webview,Android,Android Webview,我有以下课程 import android.app.Activity; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.webkit.WebView; import android.webkit.WebViewClient; public class MainActivity extends Activity { private WebView w; @O

我有以下课程

import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {
  private WebView w;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    w = (WebView) findViewById(R.id.activity_main_webview);
    w.getSettings().setJavaScriptEnabled(true);
    w.getSettings().setBuiltInZoomControls(true);
    w.getSettings().setDisplayZoomControls(false);
    w.setClickable(true);
    w.loadUrl("https://www.w3schools.com/js/tryit.asp?filename=tryjs_alert");
  }
  @Override
  public void onBackPressed() {
    if(w.canGoBack())w.goBack();
    else super.onBackPressed();
  }
}
如果尝试单击“尝试”警报框,则不会触发任何事件


如何修复WebView?

WebView不会自动显示AlertDialog。您必须使用setWebChromeClient设置WebChromeClient,然后覆盖onJsAlert以显示警报对话框。

只需设置默认WebChromeClient:


这里也有类似的问题 尝试添加以下内容:

    webView.getSettings().setPluginsEnabled(true);
    webView.getSettings().setAllowFileAccess(true);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webView.getSettings().setPluginsEnabled(true);
    webView.getSettings().setAllowFileAccess(true);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);