加载html字符串时,webview的goBack()函数不起作用

时间:2017-01-20 16:10:43

标签: android html webview

我正在将HTML字符串设置为webview。 html字符串包含超链接(可点击链接)。当用户点击链接时,它将加载到同一个webView中。当用户按下时,goBack()函数可以工作,但不会加载回字符串。我还尝试在用户按下时再次加载html字符串。但这不起作用。在下面发布我的代码。

mDescriptionWebVIew.getSettings().setJavaScriptEnabled(true);
mDescriptionWebVIew.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View view, int i, KeyEvent keyEvent) {
            if ((i == KeyEvent.KEYCODE_BACK) && mDescriptionWebVIew.canGoBack()) {

                mDescriptionWebVIew.goBack();
                if(urlList.size()!=0) {
                    urlList.remove(urlList.size() - 1);
                }
                if(urlList.size()==0){
                    mDescriptionWebVIew.loadDataWithBaseURL("", htmlFinal, "text/html", "UTF-8", "");
                }
                return true;
            }
            return false;
        }
    });
mDescriptionWebVIew.getSettings().setPluginState(WebSettings.PluginState.ON);
mDescriptionWebVIew.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            urlList.add(url);
            return false;
        }
    });

1 个答案:

答案 0 :(得分:1)

如果您未使用baseUrl参数(loadDataWithBaseURL方法的第一个参数),那么您可能只需要loadData代替:

mDescriptionWebVIew.loadData(htmlFinal, "text/html", "UTF-8");