我正在将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;
}
});
答案 0 :(得分:1)
如果您未使用baseUrl
参数(loadDataWithBaseURL
方法的第一个参数),那么您可能只需要loadData
代替:
mDescriptionWebVIew.loadData(htmlFinal, "text/html", "UTF-8");