在可以让jquery mobile的html页面可以在Android中显示之后,想做到可以在后台接收并用log输出前端传来的参数
在查阅了网上的资料,发现webView提供了共java和javaScript互相调用的接口。
首先在控制布局的active_main.xml中加入webView并添加id为webView(在activity中根据id获得该view)
接着完成User类 ,类里只有两个属性,并完成showUser方法,该方法接受前台传来的用户名和密码,并在log中输出
接着完成MainActivity,addJavascriptInterface是给user对象起个别名为user,前端的js通过window.user.showUser("","")调用其函数。
接着完成index.html,该页面中只有两个输入框和一个提交按钮。function ok()用于将两个输入框的内容传给后台的showUser函数
都完成之后试了一下,发现在点击submit按钮时,后台可以接收前台的内容并显示了。
但是可以发现显示的html四周留白,并没有占满整个屏幕。
试过了网上的多种解决方法,都没有解决问题。
网上解决方法一:
WebSetting settings = webView.getSettings();
settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
settings.setLoadWithOverviewMode(true);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int mDensity = metrics.densityDpi;
if (mDensity == 120) {
settings.setDefaultZoom(ZoomDensity.CLOSE);
}else if (mDensity == 160) {
settings.setDefaultZoom(ZoomDensity.MEDIUM);
}else if (mDensity == 240) {
settings.setDefaultZoom(ZoomDensity.FAR);
}
隐藏webView 的scrollbar
试了以上方法都不管用,最后发现是在控制布局的activity_main.xml中有设置默认的边距填充。
于是找到dimen.xml文件
打开,发现里面设置了active_horizontal_margin和active_vertical_margin的值为16dp,改为0dp之后问题就解决了。