2012-03-18 120 views
13

我試圖從服務器加載一個html頁面,該頁面包含一個鏈接到android sdcard .js文件的腳本。android不允許加載本地資源:file:/// android_asset

的Java:

String url ="http://192.168.84.86:8080/test/maw/js_load_test.html"; 
this.loadUrl(url); 

js_load_test.html:

<script src="file:///sdcard/test.js"></script> 

我也試過:

<script src="file:///android_asset/www/js/test.js"></script> 

test.js文件存在和js文件的路徑是正確的。 但在logcat中: 文件:///sdcard/test.js:

03-18 13:01:12.467:E/Web控制檯(26189):不允許裝載本地 資源:文件: 0

文件:在///sdcard/test.js ///android_asset/www/js/test.js:

03-18 13:01:53.467:E /網頁控制檯(26189):不允許加載本地 資源:file:///android_asset/www/js/test.js at:0

回答

0

試試這個:

this.loadUrl("file:///android_asset/www/js/test.js"); 

,但應該有自己的資產文件夾一個文件夾名稱WWW-> JS。

+0

是的,這不會加載test.js,但我只加載HTML文件 – kim 2012-03-19 00:47:11

+0

是您的資產文件夾或某些服務器上的HTML文件? – Dhruvisha 2012-03-21 11:05:07

+0

遠程服務器中的Html文件 – kim 2012-06-09 23:26:18

1

如果您收到「不允許加載本地資源:file:///android_asset/index.html」錯誤,那麼最有可能您的問題是將資產文件夾放在錯誤的位置。

對於gradle項目,通過java和res文件夾在src/main /目錄下存儲您的資產文件夾。就像這樣:

項目文件夾 - | PROJECT_NAME
- |打造
- | SRC
--- | 資產
--- |根
--- | java的
--- |資源

對於RES /目錄下的maven項目存儲YOUT資產

1

解決這一問題在創建文件夾「main」稱爲「android_asset」,並在android_asset文件夾中創建另一個名爲「assets」的文件夾,並將您的html文件放入資產中並使用此mWebView.loadUrl(「file:/// android_asset/YOUR HTML FILE.html」)進行調用。

我有同樣的問題,即使我不叫mWebView.loadUrl(「文件:/// android_asset/assets /你的HTML FILE.html」);它仍然是一些如何工作。我覺得很奇怪,因爲那裏的HTML實際上是!

因此,您的文件夾應該看起來像這個main/android_assets/assets/YOUR HTML.html並使用mWebView.loadUrl(「file:/// android_asset/YOUR HTML FILE.html」)調用。

繼承人如何我oncreate看起來。

公共類MainActivity擴展ActionBarActivity {

private WebView mWebView; 



@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mWebView = (WebView) findViewById(R.id.activity_main_webview); 
    // Enable Javascript 
    WebSettings webSettings = mWebView.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    mWebView.loadUrl("file:///android_asset/index.html"); 

} 
相關問題