![](/img/trans.png)
[英]Not allowed to load local resource:file:///android_asset phonegap
[英]android Not allowed to load local resource:file:///android_asset
我正在尝试从服务器加载一个html页面,该页面包含一个链接到android sdcard .js文件的脚本。
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:file:///sdcard/test.js:
03-18 13:01:12.467:E / Web控制台(26189):不允许加载本地资源:file:///sdcard/test.js at:0
文件:///android_asset/www/js/test.js:
03-18 13:01:53.467:E / Web Console(26189):不允许加载本地资源:file:///android_asset/www/js/test.js at:0
这可能有所帮助
https://groups.google.com/group/android-developers/browse_thread/thread/e20e87d2faf9ff41?pli=1#
webview.loadDataWithBaseURL( "file:///android_asset/", html, "text/html",
"utf-8", null );
如果您收到“不允许加载本地资源:file:///android_asset/index.html”错误,则很可能是您的问题是将资源文件夹放在错误的位置。
对于gradle项目,由java和res文件夹存储src / main /目录下的assets文件夹。 像这样:
project-folder - | project_name
- |编译
- | SRC
--- | 资产
--- |根
--- | java的
--- |资源
对于maven项目商店,您在res /目录下拥有资产
要解决此问题,请在“main”中创建一个名为“android_asset”的文件夹,并在android_asset文件夹中创建另一个名为“assets”的文件夹,并将您的html文件放入资源并使用此mWebView.loadUrl进行调用(“file:/// android_asset / YOUR HTML FILE.html“);
我有同样的问题,即使我不调用mWebView.loadUrl(“file:/// android_asset / assets / YOUR HTML FILE.html”); 它仍然有一些工作原理。 我觉得很奇怪,因为html实际上就是这样!
所以你的文件夹应该看起来像这个main / android_assets / assets /你的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");
}
String htmlStr="<html>..your html data in string..\"data/replace.js\" </html>";
if (htmlStr.contains("\"data/replace.js\"")) {
String html = data.replace("\"data/replace.js\"", "\"file:///storage/emulated/0/documents/HtmlContent/new_replace.js\"");
((Activity) mContext).runOnUiThread(() -> {
loadDataWithBaseURL("file:///storage/emulated/0/documents/HtmlContent/", html, "text/html", "UTF-8", "");
});
}
尝试使用以下代码从sdcard加载Html内容。
String fileName = "something.html";
File lFile = new File(Environment.getExternalStorageDirectory() + fileName);
webview.loadUrl("file:///" + lFile.getAbsolutePath());
试试这个 :
this.loadUrl("file:///android_asset/www/js/test.js");
但是在您的资源文件夹中应该有一个文件夹名称www-> js。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.