簡體   English   中英

Android WebView:從資產加載javascript時使用相對路徑

[英]Android WebView: Using relative paths when loading javascript from assets

我能夠創建一個Android hello world應用程序,該應用程序使用WebView.loadDataWithBaseURL方法從資產文件夾加載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. 不能將所有js文件移動到/ assets / appcode /下,因為我計划重用依賴於這些相對路徑的html文件
  2. 使用CDN鏈接將不起作用,因為我打算加載自己的腳本,這些腳本在網絡上不可用
  3. 如果我使用“ file:///android_asset/appcode/js/lib/jquery-1.11.0.js”而不是“ /js/lib/jquery-1.11.0.js”,那么它也可以使用。 但這是絕對路徑,當我想使用相對時。

我建議您改用CDN:

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

絕對路徑有時無法在WebView中工作,例如JavaScript文件。 我建議在點號(。)后加上路徑使用相對路徑

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM