loadData
을 사용하여 webview
에 사용자 생성 HTML을 표시하려고합니다. 내 코드는 다음과 같습니다.안드로이드 WebView에 이미지가 표시되지 않습니다.
String content = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" +
"<html><head>" +
"<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />" +
"</head><body>";
content += htmlStr + "</body></html>";
wv.loadData(content, "text/html", "UTF-8");
대부분의 경우 잘 작동하지만 특정 유형의 이미지를 표시하는 데 문제가 있습니다. 대부분의 테스트에서 <img src="..."/>
태그를 올바르게 삽입했지만 Photobucket의 이미지 링크는 전혀 표시되지 않습니다. 이미지 대신 물음표가있는 작은 상자가 생깁니다.
Photobucket에서 이미지 링크를 클릭하면 원본 이미지 자체가 아닌 해당 웹 사이트에서 이미지를 볼 수있는 페이지로 이동하는 경향이 있습니다. 나는 그 문제가 이것과 관련이 있다고 느낀다. 나는 이것이 "Referer"이슈인지, 아니면 사용자 에이전트인지, 또는 그 성질의 것일 수 있다고 생각하지만, 나는 이것이 정상적으로 표시되도록 할 수는 없다.
나는 loadDataWithBaseURL
으로 전환하고 BaseURL
(이것은 referer url로 사용됩니다)을 제공했지만 아무런 차이가 없었습니다. 나는 또한 loadUrl("http://photobucket..."
대신에 수동으로 설정된 Referer 헤더와 함께 HashMap
을 제공했지만 사용하지 못했습니다. 실제로 loadUrl
으로 전환하면 즉시 장치의 브라우저로 리디렉션되어 Photobucket 페이지가로드됩니다. 나는 사용자 정의 WebViewClient
을 제공하고 shouldOverrideUrlLoading
을 덮어 쓰려고 시도했지만, 최선의 방법은 WebView
안에 전체 Photobucket 페이지를 표시하는 것이 었습니다.
이것은 Photobucket의 특정 문제가 아니라고 확신합니다. 테스트를 진행하는 동안이 문제를 발견 한 사이트 일뿐입니다.
이 상황을 제대로 처리 할 수있는 방법을 생각하고 싶습니다. 그러나 SO 또는 인터넷에서 도움이되는 방향을 찾을 수 없었습니다. 누구든지 아이디어가 있습니까?