您的位置:首页 > 移动开发

WebView使用汇总

2016-03-17 15:38 405 查看
一、WebView加载界面的三种方式:

1、loadDataWithBaseURL(String baseUrl, String data,String mimeType, String encoding, String historyUrl);

      baseUrl  指定了你的data参数中数据是以什么地址为基准的,因为data中的数据可能会有超链接或者是image元素,而很多网站的地址都是用的相对路径,如果没有baseUrl,webview将访问不到这些资源。

      比如:<img src='/uploads/allimg/130923/1FP02V7-0.png' /> 标签的指定的Url是相对路径,如果没有baseUrl就访问不了。

      data  HTML文本;

      mimeType  资源类型,默认"text/html"  ;

      encoding    资源的编码;

      historyUrl   历史Url

2、loadData(String data, String mimeType, String encoding);

      loadData()用的比较少,加载HTML文本时一般都是loadDataWithBaseURL;

      loadDataWithBaseURL和loadData两个方法加载的HTML代码片段的不同点在于,loadData()中的html data中不能包含'#', '%', '\', '?'四中特殊字符,在平时测试时,你的数据时,你的数据里含有这些字符,但不会出问题,当出问题时,你可以替换下。

3、loadUrl(String url); 可以是本地的HTML文件,也可以是网页(网络权限)。

二、WebView的一些常用属性:

     1、setJavaScriptEnabled(boolean flag) 是否支持JS,默认false。如果想让java与js相互,或者想让js本身完成一定的功能,将此设置为true;

     2、setBuiltInZoomControls(true)和 setSupportZoom(true),这两个同时设置为true,才能支持缩放,因为设置setSupportZoom的前提是设置setBuiltInZoomControls;

     3、setDisplayZoomControls(false),缩放时看着很烦人的缩放控制器,设置false即可隐藏。通过手势进行缩放。

     4、setDefaultFontSize(18);设置默认的字体大小,默认为16,有效值区间在1-72之间。

     5、setUseWideViewPort(true)和setLoadWithOverviewMode(true)让网页全部显示在手机屏幕上(自适应屏幕)。

三、设置WebView内的链接直接有本WebView打开,否则点击链接后,跳转到手机其他的浏览器。

           m_webNoticeContent.setWebViewClient(new WebViewClient() {
           @Override
           public boolean shouldOverrideUrlLoading(WebView view, String url) {
                  view.loadUrl(url);
                  return true;
                 }
           });

四、当用loadUrl()方法打开网页时,默认是用启动手机浏览器打开,如果要用WebView打开,需要以下设置:

           private WebViewClient webViewClient = new WebViewClient() {

                  public boolean shouldOverrideUrlLoading(WebView view, String url) {

            view.loadUrl(url);

                return true;

                 }

           };

           m_webView.setWebViewClient(webViewClient);

五、loadDataWithBaseURL给WebView设置data,如果文本中有图片,需要设置图片的大小自适应屏幕,需要修改HTML文本中的img节点:

           noticeContent.replace("<img", "<img style='max-width:" + width + "px;'");其中的width是屏幕的宽度

六、WebView中返回时,返回到WebView浏览的上一个界面。

         public boolean onKeyDown(int keyCode, KeyEvent event) {       

                  if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {       

                        mWebView.goBack();       

                        return true;       

                 }       

                 return super.onKeyDown(keyCode, event);       

         }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android webview 控件