android使用webview加载H5页面

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);  //支持自动加载图片

你可能感兴趣的:(android使用webview加载H5页面)