我正在創建一個活動,我將通過用戶選擇的徽標和別名顯示訪問網站的列表。以任何方式通過網站URL以編程方式獲取徽標圖標?
例如
最近瀏覽過的網頁
LOGO1 WEBSITE1 /別名
LOGO2 WEBSITE2 /別名
。
。所以沒有
問題是,(參考附圖)如何獲得http://左側顯示的網站標誌?
我正在創建一個活動,我將通過用戶選擇的徽標和別名顯示訪問網站的列表。以任何方式通過網站URL以編程方式獲取徽標圖標?
例如
最近瀏覽過的網頁
LOGO1 WEBSITE1 /別名
LOGO2 WEBSITE2 /別名
。
。所以沒有
問題是,(參考附圖)如何獲得http://左側顯示的網站標誌?
這就是所謂的一個圖標,所有你需要做的是:
/favicon.ico
一個圖標,使用。<link rel="shortcut icon" href="URL goes here" />
中提取位置。您需要使用HTML解析器並找到<link>
,其中rel
的icon
或shortcut icon
。使用本網站:
https://besticon-demo.herokuapp.com/allicons.json?url=www.stackoverflow.com
它會發現在多個大小網站的所有標識和使用元數據包含的URL圖標返回一個不錯的JSON字符串。您只需將您的域名替換爲www.stackoverflow.com
即可。
該網站還具有手動輸入網站的一個GUI如果你喜歡:
https://besticon-demo.herokuapp.com/
下面是從查詢堆棧溢出網站返回的樣本串:
{
"url":"www.stackoverflow.com",
"icons":[
{
"url":"http://stackoverflow.com/apple-touch-icon.png",
"width":158,
"height":158,
"format":"png",
"bytes":3445,
"error":null,
"sha1sum":"c78bd457575a3221c6b3d0d17ffb00ffc63d7cd0"
},
{
"url":"http://cdn.sstatic.net/Sites/stackoverflow/img/favicon.ico?v=4f32ecc8f43d",
"width":32,
"height":32,
"format":"ico",
"bytes":5430,
"error":null,
"sha1sum":"4f32ecc8f43d0986b9c6ce9f37999e86c0b829ef"
},
{
"url":"http://stackoverflow.com/favicon.ico",
"width":32,
"height":32,
"format":"ico",
"bytes":5430,
"error":null,
"sha1sum":"4f32ecc8f43d0986b9c6ce9f37999e86c0b829ef"
}
]
}
嘗試使用此代碼:
imageview1.setImageBitmap(webview1.getFavicon());
此方法可用於獲取Favicon圖標位圖多爲你的提醒
private Bitmap fetchFavicon(Uri uri) {
final Uri iconUri = uri.buildUpon().path("favicon.ico").build();
Log.i(TAG, "Fetching favicon from: " + iconUri);
InputStream is = null;
BufferedInputStream bis = null;
try
{
URLConnection conn = new URL(iconUri.toString()).openConnection();
conn.connect();
is = conn.getInputStream();
bis = new BufferedInputStream(is, 8192);
return BitmapFactory.decodeStream(bis);
} catch (IOException e) {
Log.w(TAG, "Failed to fetch favicon from " + iconUri, e);
return null;
}
}
謝謝,我會實現,讓你知道我的發現。 - 最佳 – mask
我得到它與谷歌網址的幫助下提供了這種方法。 http://www.google.com/s2/favicons?domain=www.domain.com 抓住favicon。仍然與背景掙扎透明,因爲其中一些與白色BKG和其他一個黑色。不知道如何動態處理這些背景。 @minitTech感謝您的幫助,讓我開始了。 – mask