我确实用WebView
尝试了谷歌代码中的示例、演示和其他资源,但当我尝试用我自己的代码做这件事时,它对我不起作用。
我想加载我放在assets文件夹中的myfile.html
,并使用:
private WebView myWebView;
myWebView.loadUrl("file:///android_assets/myfile.html");
在模拟器上显示错误
无法加载位于
file:///android_assets/myfile.html
的网页,原因是:找不到请求的文件。/android_assets/myfile.html
当我将该文件放到res/raw/
文件夹中并使用:
myWebView.loadUrl("file:///android_res/raw/myfile.html");
然后可能只有仿真器Android2.2API level 8可以加载该文件,其他较旧的版本显示相同的错误。我是不是遗漏了什么?
有没有办法在所有.html版本的应用程序包中加载现有的API文件?
发布于 2010-10-27 10:41:55
好吧,那是我犯的非常愚蠢的错误。我把答案贴在这里,以防有人遇到同样的问题。
assets文件夹中存储的文件的正确路径是file:///android_asset/*
( assets文件夹没有"s“,我一直认为它必须有一个"s")。
而且,mWebView.loadUrl("file:///android_asset/myfile.html");
可以在所有API级别下工作。
我仍然不明白为什么mWebView.loadUrl("file:///android_res/raw/myfile.html");
只适用于API8级,但现在已经无关紧要了。
发布于 2015-04-16 22:26:40
如果你的结构应该是这样的:
/assets/html/index.html
/assets/scripts/index.js
/assets/css/index.css
然后就去做( Android WebView: handling orientation changes )
if(WebViewStateHolder.INSTANCE.getBundle() == null) { //this works only on single instance of webview, use a map with TAG if you need more
webView.loadUrl("file:///android_asset/html/index.html");
} else {
webView.restoreState(WebViewStateHolder.INSTANCE.getBundle());
}
确保你添加了
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
webSettings.setAllowFileAccessFromFileURLs(true);
webSettings.setAllowUniversalAccessFromFileURLs(true);
}
然后只需使用urls
<html>
<head>
<meta charset="utf-8">
<title>Zzzz</title>
<script src="../scripts/index.js"></script>
<link rel="stylesheet" type="text/css" href="../css/index.css">
发布于 2010-12-22 16:31:40
将.html文件粘贴到项目文件夹的assets文件夹中。并在布局文件夹中创建一个xml文件,其fol代码为: my.xml:
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
在活动中添加fol代码
setContentView(R.layout.my);
WebView mWebView = null;
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("file:///android_asset/new.html"); //new.html is html file name.
https://stackoverflow.com/questions/4027701
复制相似问题