2012-03-18 71 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"); 

} 
相关问题