我正在尝试使用WebView上的loadData将API级别28上已提取的html数据加载为-
Element content = doc.select("div.story-page-content").first();
String base64 = null;
String html="<font size=4px color=#000ff>" + source + "</font> | <font size=2px color=#ff0000>" + date + "</font><br>" + content.html();
base64 = android.util.Base64.encodeToString(html.getBytes("UTF-8"),
android.util.Base64.DEFAULT);
mContent.loadData(base64, "text/html; charset=utf-8", "base64");
应用程序什么都不显示。我什至尝试将loadDataWithBaseUrl()设置为-
mContent.loadDataWithBaseURL(null,html, "text/html", "utf-8",null);
仍然没有帮助。我要去哪里错了?
注意:-我正在使用Jsoup来获取Web内容。
编辑:感谢您的答复。顺便说一句,我通过删除包含webView的外部LinearLayout以某种方式修复了它。我不知道为什么会发生这种情况,但是在LinearLayout中使用API 28 webView之后,该方法不起作用。这是我的布局文件-
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/webScroll"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/titleText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_margin="@dimen/dimen_8x"
android:fontFamily="sans-serif-condensed"
android:includeFontPadding="false"
android:text="Sample Title"
android:textColor="@color/defaultContentColor"
android:textSize="@dimen/dimen_24x"
android:textStyle="bold" />
<ProgressBar
android:id="@+id/webProgress"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ImageView
android:id="@+id/mainImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/titleText"
app:srcCompat="@drawable/fastscroll__default_handle" />
<WebView
android:id="@+id/newsContent"
android:layout_below="@id/mainImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="40dp"
android:layout_marginLeft="@dimen/dimen_8x"
android:layout_marginRight="@dimen/dimen_8x"
android:layout_marginTop="@dimen/dimen_4x"
android:textSize="@dimen/fastscroll__bubble_corner" />
</RelativeLayout>
</ScrollView>
答案 0 :(得分:0)
您似乎没有从站点获得与以前相同的响应。您现在可以使用更新的android版本将其释放给错误的用户代理字符串。尝试将其添加到您的请求中:
Connection.Response loginForm = Jsoup.connect(myUrl)
.method(Connection.Method.GET)
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0")
.execute();
您可以通过运行How to know a user-agent string for specific android devices?处Tofeeq的答案中的代码来查找先前版本的用户代理字符串,并使用它代替我的代码中的字符串。