簡體   English   中英

WebView無法加載數據?

[英]WebView not Loading Data?

我正在嘗試使用WebView從rss feed加載解析的html數據,但webview聲稱該頁面:

“data:text / html; utf-8,[我試圖顯示的html]”

不可用。

替代文字

我覺得奇怪的是,當我只是希望它顯示它時,它似乎將html數據放入url。

這是我現在為webview的代碼:

Bundle data = getIntent().getExtras();

WebView webview = new WebView(this);
setContentView(webview);

webview.loadData(data.getString("DEFAULTTEXT"), "text/html", "utf-8");

HTML已在Bundle中的字符串中傳遞,標識符為:DEFAULTTEXT。 我已經測試了這個類,並且HTML傳遞得很好,它只是沒有正確顯示。

它在我試過的一些網頁上工作得很好,但其他網頁卻沒有。 我將嘗試發布一個有效的代碼和一個無代碼的代碼。

Huuu ....所以我今天早上打開電腦,工作得很好。 我還是不知道問題是什么。 :/

編輯:沒關系。 它適用於我試圖顯示的一些頁面,但不是所有頁面。

Edit2:交換出來為loadDataWithBaseURL工作就像一個魅力。

如上所述,當你的HTML中有'%','\\','#'等字符時,需要對其進行轉義,而loadData似乎並不會自動執行。

loadDataWithBaseURL而不是loadData確實轉義,似乎解決了這個問題。 只需對baseUrl和historyUrl使用null。 所以問題中的示例代碼更改為:

Bundle data = getIntent().getExtras();

WebView webview = new WebView(this);
setContentView(webview);

webview.loadDataWithBaseURL(null,data.getString("DEFAULTTEXT"), "text/html", "utf-8",null);

我相信loadData *的這種零星行為是因為您嘗試加載的頁面內容是什么。 如果它是簡單的html它沒有問題。 但如果它有像​​css或其他需要外部信息的功能的組件,它將會紓困。 我的經驗!

您確定您在manifest.xml中定義了正確的權限嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM