webview加载H5,简单显示:
1、布局文件中添加控件(或动态添加)activity中生成控件
2、webview必须设置支持js的属性:webview.getSettings().setJavaScriptEnabled(true); 这里还可以设置其它更多的属性
3、加载显示页面:webView.loadUrl(“······”);
webview与H5交互:
1、js调用Android中的函数
webView.addJavascriptInterface(obj,str);
参数一:android中的实例对象
参数二:js中别名
注:如果js中调用此对象的某方法,须在此公有方法前加上注解@JavascriptInterface,否则访问不了,目前只知道这种写法只能调用对象的方法。
如果不加webView.setWebChromeClient()这个方法,js中的alert对话框将不会提示。
js中使用str.xx()/window.str.xx()调用android中的方法
注:Android中的list须转换成json的字符串形式传入到js中,用eval(json)进行获取
2、android调用js中的函数
js中编写带参或不带参的方法 如
function init(){
alert("js中方法显示");
}
用webView.loadUrl(“javascript:init()”);进行调用显示即可
webview中必要的属性设置
WebSettings webSettings = myWebView.getSettings();
webSettings.setDefaultTextEncodingName("utf-8");//设置编码格式
webSettings.setWebViewClient(newWebViewClient());//限制在webview中打开网页,不用默认浏览器
webSettings.getSettings().setBuiltInZoomControls();//设置是否支持缩放
webSettings.addJavascriptInterface(obj,str);//向html页面注入java对象
webSettings.setUseWideViewPort(true);//设置此属性,可任意比例缩放
webSettings.setLoadWithOverviewMode(true);// 页面支持缩放:
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
webUrl.requestFocusFromTouch(); //如果webView中需要用户手动输入用户名、密码或其他,则webview必须设置支持获取手势焦点。
webSettings.setJavaScriptEnabled(true); //支持js
webSettings.setUseWideViewPort(false); //将图片调整到适合webview的大小
webSettings.setSupportZoom(true); //支持缩放 webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); //支持内容重新布局
webSettings.supportMultipleWindows(); //多窗口
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //关闭webview中缓存
webSettings.setAllowFileAccess(true); //设置可以访问文件
webSettings.setNeedInitialFocus(true); //当webview调用requestFocus时为webview设置节点
webSettings.setJavaScriptCanOpenWindowsAutomatically(true); //支持通过JS打开新窗口
webSettings.setLoadWithOverviewMode(true); // 缩放至屏幕的大小
webSettings.setLoadsImagesAutomatically(true); //支持自动加载图片