【发布时间】:2016-11-13 07:41:22
【问题描述】:
我正在尝试让我的应用与网站同步,并仅显示网站的表格。示例:普通的 HTML 框架,表格在 div#table 中,所以我做得很简单,并构建了 HTML 框架:
String html = "<html> " +
"<head>" +
"</head>" +
"<body style=\"background-color: transparent\">" +
"?body" +
"</body>" +
"</html>";
然后我尝试用表格替换 ?body,但这是我的问题:我不知道如何做到这一点,然后将其加载到透明的 WebView 中。我在网上找到了一些代码,并试图让它适用于我的情况,所以这是:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
List<String> links = new ArrayList();
setContentView(SliderCreator.createSlider(R.layout.activity_news, this));
wv = (WebView) findViewById(R.id.newsWebView);
wv.setBackgroundColor(Color.TRANSPARENT);
try {
String finalHTML = getIntent().getStringExtra("html");
if (!finalHTML.contains("<html>")) {
String css = "";
for(String link : links) {
css+=Utils.getHTML(link);
}
finalHTML = html.replace("?body", getIntent().getStringExtra("html")).replace("?css", css);
}
wv.getSettings().setJavaScriptEnabled(true);
//open URLs in external Browser
wv.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
}
});
wv.loadDataWithBaseURL("", finalHTML, "text/html", "UTF-8", "");
} catch(Exception e) {
Toast.makeText(this, "An error occured...", Toast.LENGTH_LONG).show();
}
但这不起作用..有人可以帮我解决这个问题吗? (顺便说一句:我用 RegEx 试过,没用,我用 JSoup 试过,也没用...)
【问题讨论】:
-
你试过调试它吗?您确定从 `String finalHTML = getIntent().getStringExtra("html");` 获得正确的值吗?
-
添加一些 println,看看你加载到 WebView 中的 HTML 是否真的是你想要的。究竟什么是“不起作用”?
-
@JonasCz 我对编程很陌生,我刚刚添加了 println,是的,你是对的,我没有得到任何我想的东西。我认为问题是我可能需要一个 AsyncTask,但我不知道该怎么做。所以不起作用的是我只在我的 webview 中显示一个 div 标签,我想删除其他的东西.
-
如果您向我们展示您将 HTML 放入 Intent 的代码(您将
html额外字符串添加到 Intent 中,可能是在另一个 Activity 中,也许我可以告诉您出了什么问题。 -
@JonasCz 我只是要对其进行硬编码。 xD