简体   繁体   English

Javascript在Android 4.4.4以下的WebView中不起作用

[英]Javascript does not work in WebView below Android 4.4.4

I am trying to load a local js file from the assets folder in a web view. 我正在尝试从Web视图中的assets文件夹加载本地js文件。

It works perfectly under Android 4.4.4 and Android 5 but not under Android 4.3 and lower versions. 它在Android 4.4.4和Android 5下完美运行,但在Android 4.3和更低版本下则无法运行。

The css is displayed correctly but the js does not seem to be loaded. CSS正确显示,但js似乎未加载。

This is my code: 这是我的代码:

private static final String HTML_CHARSET = "<meta charset='utf-8'>";
private static final String HTML_TITLE = "<title>Aufbau einer Tabelle</title>";
private static final String HTML_STYLESHEET = "<link href='matrix.css' type='text/css' rel='stylesheet'/>";
private static final String HTML_SCRIPT1 = "<script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js' type='text/javascript'></script>";
private static final String HTML_SCRIPT2 = "<script src='https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.js' type='text/javascript'></script>";
private static final String HTML_SCRIPT3 = "<script src='matrix.js' type='text/javascript'></script>";
private static final String HTML_VIEWPORT = "<meta name='viewport' content='width=device-width, initial-scale=1.0'>";

private static final String HTML_STRING = "<!doctype html> <html> <head> " + HTML_CHARSET + HTML_TITLE + HTML_STYLESHEET + HTML_SCRIPT1 + HTML_SCRIPT2 + HTML_SCRIPT3 + HTML_VIEWPORT + "</head> <body> <table> %s%s </table> </body> </html>";

... ...

    String htmlString = String.format(HTML_STRING, htmlTableHeader, tableBody);

    WebSettings settings = matrixWebView.getSettings();
    settings.setJavaScriptEnabled(true);
    settings.setDomStorageEnabled(true);

    matrixWebView.loadDataWithBaseURL("file:///android_asset/", htmlString, "text/html", "UTF-8", null);

Anyone has an idea? 有人有主意吗?

loadDataWithBaseURL doesn't need to be prefixed with "file://" or the path. loadDataWithBaseURL不需要以“ file://”或路径作为前缀。 It needs just the HTML content. 它只需要HTML内容。

loadURL can be used to load a file contents. loadURL可用于加载文件内容。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM