【问题标题】:Load external javascript file inside HTML file from android assets folder into WebView将 HTML 文件中的外部 javascript 文件从 android assets 文件夹加载到 WebView
【发布时间】:2019-04-24 04:03:02
【问题描述】:

我正在尝试将外部 JavaScript 文件加载到 HTML 文件中。两者都放在 assets 文件夹中。

这是我的htmlTest.html 文件:

<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
    <script src="test.js"></script>
</head>

<body>

    <script type="text/javascript">

        func();


    </script>

</body>

这是我的 test.js 文件:

function func(){
    $(document).ready(function () {
        $('#EDIFICI').children().click(function () {
            alert($(this).attr('id'));
        });

    });
}   

这两个文件都位于 assets 文件夹的根目录中。 我像这样将 htmlTest.html 加载到我的 WebView 中:

wv.loadUrl("file:///android_asset/htmlTest.html");  

如果我将 JavaScript 代码直接内联到 HTML 页面中,它可以工作,但当我链接外部 JavaScript 文件时,它就不行了。

【问题讨论】:

    标签: javascript android html webview


    【解决方案1】:

    1.on onCreate 添加getSettings().setJavaScriptEnabled(true)

    2.像这样改变.js

    <head>
        <script type="text/javascript" src="test.js"></script>
    </head>

    【讨论】:

      【解决方案2】:

      这对我有用:

       <head>
              <script type="text/javascript" src="file:///android_asset/xxxxx.js"></script>
      </head>
      

      而 xxxxx.js 在 assets 文件夹中。

      在代码中

      WebView.enableSlowWholeDocumentDraw();
              oWebView.clearCache(true);
              oWebView.setPadding(0, 0, 0, 0);
              oWebView.setInitialScale(1);
              oWebView.getSettings().setUseWideViewPort(true);
              oWebView.getSettings().setLoadWithOverviewMode(true);
              oWebView.getSettings().setSupportZoom(true);
              oWebView.getSettings().setBuiltInZoomControls(true);
              oWebView.setScrollbarFadingEnabled(false);
              oWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
              oWebView.getSettings().setJavaScriptEnabled(true);
              oWebView.setWebViewClient(new WebViewClient());
      

      【讨论】:

        【解决方案3】:

        试试这样的

        webView.evaluateJavascript(yourFileAsString)
        

        【讨论】:

        • 没有帮助。
        • 变量 yourFileAsString 包含有效的 javascript 或者您传递文件路径?
        【解决方案4】:

        尝试如下添加脚本

        <html>
          <head>
            <script type="text/javascript" src="test.js"></script>
          </head>
        

        并将 test.js 文件添加到带有 html 的文件夹中

        【讨论】:

          【解决方案5】:

          我的 javascript 文件中有错误。它就像我在示例中所说的那样工作。很抱歉浪费了您的时间。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-07-24
            • 2018-06-30
            • 2011-08-04
            • 1970-01-01
            • 2019-11-06
            • 1970-01-01
            • 2017-09-15
            相关资源
            最近更新 更多