Android WebView:从资源加载javascript时使用相对路径

时间:2014-03-01 19:58:02

标签: javascript android jquery html webview

我能够创建一个Android hello world应用程序,使用WebView.loadDataWithBaseURL方法从assets文件夹加载html文件:

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

我的HTML看起来有点像这样:

<!DOCTYPE html>
<html>
<head>
    <meta charset="ISO-8859-1">
    <title>Insert title here</title>

    <script src="/js/lib/jquery-1.11.0.js"></script> <!-- This script is not being loaded -->
    <script src="helloWorld.js"></script> <!-- This script is being loaded -->

</head>
<body>
    <div id="placeholder"></div>
</body>
</html>

问题如下:当helloWorld.js文件成功加载时,未加载jquery-1.11.0.js。我确认该文件存在于相对路径下。

如果我将jquery-1.11.0.js移动到html文件位置(到helloWorld.js所在的同一位置),它就可以解决问题。但我想使用相对路径来加载脚本。提前谢谢。

更新:

  1. 移动/ assets / appcode /下的所有js文件不是一个选项, 因为我打算重用依赖于这些的html文件 相对路径
  2. 使用CDN链接无效,因为我是 计划加载我自己的网络上没有的脚本
  3. 如果我使用“file:///android_asset/appcode/js/lib/jquery-1.11.0.js”而不是“/js/lib/jquery-1.11.0.js”,它也可以使用。但是,当我想使用亲戚时,这是绝对的道路。

2 个答案:

答案 0 :(得分:0)

我建议您改用CDN:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="helloWorld.js"></script>

答案 1 :(得分:0)

绝对路径有时在WebView(例如JavaScript文件)中不起作用。 我建议使用带有点(。)的相对路径,然后使用路径

<script src="./js/lib/jquery-1.11.0.js"></script>
             ^