android中封装了WebView这个组件专门用来加载html文件进行混合开发
首先,assets文件夹的问题,File->New->Folder->Assets Folder新建assets文件夹,类似于res文件夹,存放一些资源文件,可以把html和css文件放在这里,
然后在Java文件中显示本地文件时:
public class ArticleActivity extends Activity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.article);
webView = new WebView(this);
this.webView = (WebView) findViewById(R.id.h5);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
//适应分辨率
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
webView.loadUrl("file:///android_asset/index1.html");
webView.setWebViewClient(new HelloWebViewClient());
}
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
}
下面有个小的问题是css文件样式加载不全
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
添加这两行就可以解决了
如果报错 net::ERR_FILE_NOT_FOUND的意思就是未找到加载的文件
检查URL中的文件名
应该是 file:///android_asset/…
报错net::ERR_NAME_NOT_RESOLVED检查模拟器的联网状况
另外一个小的设置:
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/h5">
</WebView>
最好是能够设置参数为match_parent(如果html页面是完整的)