为什么WebView无法正确呈现原始HTML?

时间:2014-04-22 11:55:35

标签: android html webview

也许我的问题是一个愚蠢的问题但是webview并不能解释html标签。我搜索过但没有发现这样的问题。如果您有任何想法,请告诉我。

这是我的代码:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        // Get context of application
        mContext = getActivity().getApplicationContext();

        // Assign layout to fragment
        View view = inflater.inflate(R.layout.dialog_product_info, container, false);

        mWebView = (WebView) view.findViewById(R.id.webView);
        mWebView.setBackgroundColor(getResources().getColor(R.color.transparent));

        return view;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        getDialog().setTitle(mProduct.getName());

        mWebView.loadDataWithBaseURL(null, "<HTML>" + mProduct.getDescription() + "</HTML>", "text/html", "utf-8", null);

    }

截图:

enter image description here

2 个答案:

答案 0 :(得分:0)

据推测,getDescription()正在返回转义数据。检查从getDescription()返回的值。如果它包含大量&lt;&gt;,则<>会转换为实体引用。您需要将这些转换回<>

答案 1 :(得分:0)

基于this answer,我下载了添加到我的lib文件夹的commons-lang3-3.3.2-bin.zip文件,并将我的代码更改为以下内容。它现在工作正常。希望它能帮助别人。

@Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        getDialog().setTitle(mProduct.getName());

        String description = mProduct.getDescription();
        description = StringEscapeUtils.unescapeHtml4(description);
        mWebView.loadDataWithBaseURL(null, "<HTML>" + description + "</HTML>", "text/html", "utf-8", null);
    }