WebView属性及一些问题

loadData()和loadDataWithBaseURL()使用的区别

  • loadData()中的html data中不能包含'#', '%', '\', '?'四中特殊字符,出现这种字符就会出现解析错误,显示找不到网页还有部分html代码。
  • 处理方法:我们需要用UrlEncoder编码为%23, %25, %27, %3f 。 可以使用以下两种代码,data为string类型的html代码

(1)webView.loadData(URLEncoder.encode(data, "utf-8"), "text/html", "utf-8");  
(2)webView.loadDataWithBaseURL(null, data, "text/html", "utf-8", null);
    webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);// 设置是否支持Javascript
        webSettings.setDomStorageEnabled(true);// 开启localStorage
        webSettings.setBlockNetworkImage(true);// 是否显示网络图像
        webSettings.setAllowFileAccess(true);// 启用或禁止WebView访问文件数据
        webSettings.setSupportZoom(true);// 设置可以支持缩放
        // webSettings.setBuiltInZoomControls(true);// 设置出现缩放工具
        webSettings.setDefaultTextEncodingName("UTF-8");// 设置在解码时使用的默认编码
        webSettings.setUseWideViewPort(true);//自适应webview的大小 
        webSettings.setLoadWithOverviewMode(true);
        webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);// 设置布局方式, 自适应屏幕 ,LayoutAlgorithm.NARROW_COLUMNS:适应内容大小LayoutAlgorithm.SINGLE_COLUMN:适应屏幕,内容将自动缩放  
    //webSettings.setJavaScriptCanOpenWindowsAutomatically(true);// 支持通过JS     打开新窗口
        webSettings.setSupportMultipleWindows(true);//多窗口
        webSettings.setPluginState(PluginState.ON);//支持插件
        webSettings.setLoadsImagesAutomatically(true);//支持自动加载图片