我想知道为什么我的JavaScript不会在我的WebView中执行。
在我的应用中,我通过覆盖MainActivity
onCreate
在应用开始的主视图顶部显示自定义网页视图。 webview中包含来自文件的HTML和Javascript。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Display display = getWindowManager().getDefaultDisplay();
// The next line creates webview with the content from my html file that contains javascript.
WebView loadingScreen = Loading.createLoadingScreen(this, getLoadingHTMLPath(), appView);
LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
loadingScreen.setLayoutParams(layoutParams);
loadingScreen.setMinimumHeight(display.getHeight());
loadingScreen.setMinimumWidth(display.getWidth());
Dialog loadingDialog = new Dialog(this, android.R.style.Theme_Translucent_NoTitleBar);
loadingDialog.setContentView(loadingScreen);
loadingDialog.setCancelable(false);
loadingDialog.show();
这成功显示了我的WebView,但其中没有执行任何JavaScript。 (HTML文件在<script>
之后包含<body>
标记。我感到困惑,因为我在iOS中采用了类似的方法并且它有效。
我的意思是我无法在onCreate
阶段执行JavaScript,但我不确定。关于为什么会发生这种情况以及可能的解决方案的任何建议?
答案 0 :(得分:0)
问题在于我必须使用WebSettings#setJavaScriptEnabled
来启用JavaScript执行。
默认情况下,setJavaScriptEnabled
设置为false
。这就是我的JavaScript没有运行的原因。
在我的情况下,我不得不补充:
loadingScreen.getSettings().setJavaScriptEnabled(true);