我的应用必须显示存储在assets文件夹中的5个HTML页面,以及如何在单个webview中显示它们。
答案 0 :(得分:11)
WebView webView = (WebView) findViewById(R.id.YourWebView);
webView.loadUrl("file:///android_asset/your.html");
答案 1 :(得分:3)
<WebView
android:id="@+id/testWebView"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</WebView>
然后用导航湖创建html页面:
<body>
<ul id="menu">
<li><a href="page1.html" title="page 1">Page 1</a></li>
<li><a href="page2.html" title="page 2">Page 2</a></li>
<li><a href="page3.html" title="page 3">Page 3</a></li>
<li><a href="page4.html" title="page 4">Page 4</a></li>
<li><a href="page5.html" title="page 5">Page 5</a></li>
</ul>
<h1> page 1</h1>
</body>
然后加载第一页:
WebView webView = (WebView) findViewById(R.id.testWebView);
webView.loadUrl("file:///android_asset/page1.html");
所以你得到一个带有导航到其他页面的html页面
答案 2 :(得分:2)
我找到了这个,并且献给了斯特凡·哈尔恩先生(了解我的问题)
`
private WebView mWebView = null;
private TextView selectedText = null;
private long timeLeft;
private int pageIndex;
private String pagePath;
private String[] pageList;
private AssetManager assMan =null;
private String path="Courses/Section01";
private int SelectedRow;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.course);
mWebView = (WebView) findViewById(R.id.webview);
assMan= this.getAssets();
try {
pageList = aMan.list(path);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
pageIndex=0;
System.out.println(pageList[0]);
System.out.println(pageList.length);
pagePath=pageList[pageIndex];
loadWebView(pagePath);
Button nextView = (Button) findViewById(R.id.nxt);
nextView.setOnClickListener(NextClick);
Button previousView = (Button) findViewById(R.id.pre);
previousView.setOnClickListener(PreviousClick);
}
View.OnClickListener PreviousClick = new View.OnClickListener() {
public void onClick(View v) {
GoPrevious();
}
};
View.OnClickListener NextClick = new View.OnClickListener() {
public void onClick(View v) {
GoNextNews();
}
};
private void loadWebView(String s){
//mWebView.loadUrl(s);
mWebView.loadUrl("file:///android_asset/htmlFilesFolder/"+s);
}
private void GoNextNews() {
int TotalRows = pageList.length;
if ((SelectedRow + 1) < TotalRows)
{
SelectedRow = SelectedRow + 1;
String s=pageList[SelectedRow];
loadWebView(s);
}
}
private void GoPrevious() {
if (SelectedRow > 0)
{
SelectedRow = SelectedRow - 1;
String s=pageList[SelectedRow];
loadWebView(s);
}
}
}`
答案 3 :(得分:1)
如果我没错,你实际上是在谈论SPA(单页应用程序)。你应该看一下Angularjs,它是一个具有proparty routeProvider的框架。你可以轻松加载你的html页面,这些页面实际上是你的主html页面中的部分内容。只需花一些时间在滚滚链接上......哦......如果你在你的项目上添加phonegap,它也适用于android和ios。
http://docs.angularjs.org/tutorial/step_07
http://docs.angularjs.org/tutorial
乐于帮助......
答案 4 :(得分:0)
我建议您先将html文件从Assets复制到Internal Directory(getFilesDir())。然后执行
webView.loadUrl( “文件://” + getFilesDir()+ “/firstPage.html”);
因为直接来自Assets,某些设备无法使用。