Вы можете получить http-ответ с удаленного URL, проанализировать его и заменить удаленные URL-адреса локальными с помощью замены строк.Затем используйте этот HTML-код для отображения в веб-представлении.
Я хочу отправить веб-страницу с сервера на WebView
Вы говорите?о механизме «толкать», а не «тянуть» (как обычно с loadUrl()
)?Это доступно только в 2.2
(Вопрос: я полагаю, что работа с локальными веб-страницами на устройстве полностью не работает в вашем случае, поскольку вам нужны обновленные версии с сервера, верно? Вы знаете только, что изображенияне изменится, исправьте?)
Пример кода для извлечения удаленной html-страницы - после этого вы сделаете замену строки для URL вашего изображения:
/**
* Downloads a remote file and stores it locally
* @param from Remote URL of the file to download
* @param to Local path where to store the file
* @throws Exception Read/write exception
*/
static private void downloadFile(String from, String to) throws Exception {
HttpURLConnection conn = (HttpURLConnection)new URL(from).openConnection();
conn.setConnectTimeout(15000); // timeout 15 secs
conn.setDoInput(true);
conn.connect();
InputStream input = conn.getInputStream();
FileOutputStream fOut = new FileOutputStream(to);
int byteCount = 0;
byte[] buffer = new byte[4096];
int bytesRead = -1;
while ((bytesRead = input.read(buffer)) != -1) {
fOut.write(buffer, 0, bytesRead);
byteCount += bytesRead;
}
fOut.flush();
fOut.close();
}
В качестве альтернативы вы можете использовать
HttpClient httpClient = new DefaultHttpClient();
HttpGet get = new HttpGet("http://www.myurl.com");
HttpResponse res = httpClient.execute(get);
if(res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
InputStream input = res.getEntity().getContent();
byte data[] = new byte[14];
input.read(data);
....