我有以下课程。
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?
答案 0 :(得分:1)
只需设置默认WebChromeClient
:
w.setWebChromeClient(new WebChromeClient());
答案 1 :(得分:0)
webview不会自动显示AlertDialog
。您必须使用setWebChromeClient
设置WebChromeClient
,然后覆盖onJsAlert
以显示AlertDialog
。
答案 2 :(得分:0)
此处提出类似问题WebView blocking pop up windows? 尝试添加以下内容:
webView.getSettings().setPluginsEnabled(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);