从Android中的资产中引用用于NanoHttpD的文件
我正在尝试使用NanoHTTP在Android的帮助下提供一个HTML文件。 目前我能够显示页面。我也是安德里奥德的新手。问题是,即使在我在AssetManager的帮助下拍摄了这些文件之后,也没有清楚地了解如何引用该html文件的图像和css。下面我提供了完整的代码。谁能帮我一下吗 注意:其他权限设置与InternetPermission类似。只是不知道如何引用其他支持的文件(css、图像、javascript文件)来获取html从Android中的资产中引用用于NanoHttpD的文件,android,android-assets,nanohttpd,Android,Android Assets,Nanohttpd,我正在尝试使用NanoHTTP在Android的帮助下提供一个HTML文件。 目前我能够显示页面。我也是安德里奥德的新手。问题是,即使在我在AssetManager的帮助下拍摄了这些文件之后,也没有清楚地了解如何引用该html文件的图像和css。下面我提供了完整的代码。谁能帮我一下吗 注意:其他权限设置与InternetPermission类似。只是不知道如何引用其他支持的文件(css、图像、javascript文件)来获取html package com.web; import androi
package com.web;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import java.io.*;
import java.util.*;
public class MainActivity extends Activity
{
private WebServer server;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
AssetManager assetManager = getAssets();
String imagePath = "fileapp/image";
String cssPath = "fileapp/css";
String files[] = null;
try {
files = assetManager.list(imagePath);
Log.i("Image", files[0]);
Log.w("Image", files[0]);
} catch (IOException e) {
// TODO Auto-generated catch block
Log.e("Image ",e.getMessage());
}
server = new WebServer();
try {
server.start();
} catch(IOException ioe) {
Log.w("Httpd", "The server could not start.");
}
Log.w("Httpd", "Web server initialized.");
}
// DON'T FORGET to stop the server
@Override
public void onDestroy()
{
super.onDestroy();
if (server != null)
server.stop();
}
private class WebServer extends NanoHTTPD {
public WebServer()
{
super(8080);
}
@Override
public Response serve(String uri, Method method,
Map<String, String> header,
Map<String, String> parameters,
Map<String, String> files) {
StringBuilder msg = new StringBuilder("<html><head><title>" + heading + "</title>" +
**"<link href=\"../../../fileapp/css/style.css\" rel=\"stylesheet\">" +**
"</head>"
+ "<body>");
msg.append("**<div class=\"jumbotron-sm\"> <img src=\"../../../fileapp/image/logo.png\">**</div>");
msg.append("<div>My Body Content go here......</div>");
msg.append("</body>"
+ "</html>");
return msg.toString();
}
}
}
package.com;
导入android.app.Activity;
导入android.os.Bundle;
导入android.os.Environment;
导入android.util.Log;
导入java.io.*;
导入java.util.*;
公共类MainActivity扩展了活动
{
专用网络服务器;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
AssetManager AssetManager=getAssets();
字符串imagePath=“fileapp/image”;
字符串cssPath=“fileapp/css”;
字符串文件[]=null;
试一试{
files=assetManager.list(imagePath);
Log.i(“图像”,文件[0]);
Log.w(“图像”,文件[0]);
}捕获(IOE异常){
//TODO自动生成的捕捉块
Log.e(“Image”,e.getMessage());
}
服务器=新的Web服务器();
试一试{
server.start();
}捕获(ioe异常ioe){
Log.w(“Httpd”,“服务器无法启动”);
}
w(“Httpd”,“Web服务器已初始化”);
}
//别忘了停止服务器
@凌驾
公共空间
{
super.ondestory();
如果(服务器!=null)
server.stop();
}
私有类Web服务器扩展了NanoHTTPD{
公共Web服务器()
{
超级(8080);
}
@凌驾
公共响应服务(字符串uri、方法、,
地图标题,
映射参数,
地图文件){
StringBuilder msg=新建StringBuilder(“+标题+”)+
**"" +**
""
+ "");
msg.追加(“****”);
msg.append(“我的身体内容放在这里……”);
msg.append(“”)
+ "");
返回msg.toString();
}
}
}
如果有任何进一步的细节,请告诉我
感谢您的回答。也许会对您有所帮助。嘿,阿伦,您能把示例源代码寄给我吗。我也有同样的问题。