【问题标题】:Loading a js file from assets into webview after loading html加载html后将js文件从资产加载到webview
【发布时间】:2015-01-22 22:06:15
【问题描述】:

我搜索了很多,但找不到任何解决方案。我基本上是在 webview 中制作一个 epub 阅读器,具有一些功能,如突出显示文本等。我​​为此制作了一些 javascript 文件。但是要在 html 页面中添加 js 文件,我需要在 html 文件中定义它,例如:

<script src='file:///android_asset/jquery.js'></script>

但由于 html 可以是任何文件,我必须使用其他方法加载文件。我尝试使用

view.loadUrl("javascript:loadScript('file:///android_asset/jquery.js','callback')");

但它没有加载我的 js(我调用了它的一些函数,但它们没有工作)。

我也尝试了this 解决方案,但没有奏效。基本上,我只需要在 webview 上加载我的 js 文件,以便我以后可以使用它的功能。这听起来像是一项简单的任务,但我找不到任何解决方案。有什么想法吗?

【问题讨论】:

    标签: javascript android webview


    【解决方案1】:

    您需要使用loadDataWithBaseURL 来实现您的目的。

    更新:

    我没有看到加载到页面任何地方的实际方法 loadScript(),因此您可以在调用 javascript:loadScript() 之前尝试自己创建 loadScript 方法。

         view.loadUrl("javascript:function loadScript(url, callback)" +
                                "{" +
                                "    var head = document.getElementsByTagName('head')[0];" +
                                "    var script = document.createElement('script');" +
                                "    script.type = 'text/javascript';" +
                                "    script.src = url;" +
                                "    script.onreadystatechange = callback;" +
                                "    script.onload = callback;" +
                                "    head.appendChild(script);" +
                                "}");
    view.loadUrl("javascript:loadScript('file:///android_asset/jquery.js','callback')");
    

    【讨论】:

    • 你能详细说明你的答案吗?我已经阅读了有关此功能的文档。
    • 这里有一个完整的例子可以帮助你:stackoverflow.com/questions/9414312/…
    • 好的,我使用了 loadDataWithBaseURL("file:///android_asset/", readHtml(filePath), "text/html", "UTF-8", "");但它仍然没有加载我的 js 文件。那么第3步呢?我是否需要在我的 html 文件中手动添加该脚本标记?
    • 是的,您需要将脚本标签加载到您的 html 文件中,并确保您的资源路径正确。
    • 所以你的意思是说我必须在html内容中手动追加脚本标签对吧?
    猜你喜欢
    • 1970-01-01
    • 2017-11-04
    • 2012-09-05
    • 2011-03-10
    • 2017-06-06
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    • 2020-05-16
    相关资源
    最近更新 更多