webView使用

webView使用

1、  概述

Webview就是起到内嵌浏览器的作用

 

2、  FAQ遇到的问题也比较多

需求是在TV里调用支付宝的url显示他的二维码

Js 不显示

webView.getSettings().setJavaScriptEnabled(true);

二维码居中(原来是左右两列)

webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);

直接跳到浏览器,嵌套不住

// 防止跑到浏览器界面去

webView.setWebViewClient(new WebViewClient() {

    public boolean shouldOverrideUrlLoading(WebView view, String url) {

              hold.webView.loadUrl(url);

              return true;

           }

    });

添加滚动条,加载条

webView.setWebChromeClient(new WebChromeClient() {

              @Override

              public void onReceivedTitle(WebView view, String title) {

 

                  super.onReceivedTitle(view, title);

              }

 

              @Override

              public void onProgressChanged(WebView view, int progress) {

 

                  if (progress == 100) {

                     progressBar.setVisibility(View.GONE);

                  }

                  super.onProgressChanged(view, progress);

              }

 

           });

加载html文件

webView.loadUrl("file:///android_asset/a.html");

 

html的字符串不行。因为有js渲染(背景渲染不出来)

webView.loadDataWithBaseURL(null, htmlString, "text/html",  "utf-8", null);

解决:

webView.loadData(URLEncoder.encode(htmlString, "utf-8"), "text/html", "utf-8");

 

webView.getSettings().setJavaScriptEnabled(true);// 支持jsp

webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);//适应屏幕,单列居中

webView.getSettings().setUseWideViewPort(true);

webView.getSettings().setLoadWithOverviewMode(true);

webView.setFocusable(false);

webView.setHorizontalScrollBarEnabled(false);

webView.setVerticalScrollBarEnabled(false);

webView.getSettings().setDefaultTextEncodingName("utf-8");

 

           // 防止Uncaught TypeError: Cannot call method

           webView.getSettings().setDomStorageEnabled(true);

 

           // 防止跑到浏览器界面去

           webView.setWebViewClient(new WebViewClient() {

              public boolean shouldOverrideUrlLoading(WebView view, String url) {

                  hold.webView.loadUrl(url);

 

                  return true;

              }

           });

 

           // 此处能拦截超链接的url,即拦截href请求的内容.

           webView.setWebChromeClient(new WebChromeClient() {

              @Override

              public void onReceivedTitle(WebView view, String title) {

 

                  super.onReceivedTitle(view, title);

              }

 

              @Override

              public void onProgressChanged(WebView view, int progress) {

 

                  if (progress == 100) {

                     progressBar.setVisibility(View.GONE);

                  }

                  super.onProgressChanged(view, progress);

              }

 

           });

 

 

 

你可能感兴趣的:(二维码,webView)