加载html后,将资源中的js文件加载到webview中

ber*_*erk 5 javascript android webview

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

<script src='file:///android_asset/jquery.js'></script>
Run Code Online (Sandbox Code Playgroud)

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

view.loadUrl("javascript:loadScript('file:///android_asset/jquery.js','callback')");
Run Code Online (Sandbox Code Playgroud)

但它没有加载我的js(我称它的一些功能,但它们没有工作).

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

Max*_*org 4

您将需要使用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')");
Run Code Online (Sandbox Code Playgroud)