Cordova Android:在app start上显示自定义webview时没有js

时间:2015-11-08 22:57:45

标签: android cordova webview

我想知道为什么我的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,但我不确定。关于为什么会发生这种情况以及可能的解决方案的任何建议?

1 个答案:

答案 0 :(得分:0)

问题在于我必须使用WebSettings#setJavaScriptEnabled来启用JavaScript执行。

默认情况下,setJavaScriptEnabled设置为false。这就是我的JavaScript没有运行的原因。

在我的情况下,我不得不补充:

loadingScreen.getSettings().setJavaScriptEnabled(true);