Когда вы имеете в виду вам нужен браузер ... вы имеете в виду вы должны обрабатывать загрузку с браузером? Потому что вы можете использовать веб-просмотр и по-прежнему обрабатывать загрузку самостоятельно.
Как комментировал @Harry Joy, я бы использовал метод shouldOverrideUrlLoading(WebView view, String url)
и отфильтровал те URL-адреса, которые вы хотите скачать отдельно. Если у вас нет каких-либо конкретных расширений или URL-адресов, которые вы можете загрузить, но вы можете редактировать свой код html/javascript, возможно, вы можете сделать какой-то трюк javascript, чтобы добавить флаг и заставить WebView распознавать URL-адрес в качестве загрузки.
Для обработки загрузки, может быть, вы уже знаете, но это было бы что-то вроде этого
if (sUserAgent == null) {
Log.e(TAG + " - Conexion", getString(R.string.e_envio_datos));
}
// Create client and set our specific user-agent string
HttpClient client = new DefaultHttpClient();
HttpPost request = new HttpPost(url);
request.setHeader("User-Agent", sUserAgent);
try {
HttpResponse response = client.execute(request);
// Check if server response is valid
StatusLine status = response.getStatusLine();
if (status.getStatusCode() != HTTP_STATUS_OK) {
// Error
} else {
InputStream in = response.getEntity().getContent();
byte[] read = new byte [1024];
int numReadBytes= 0, singleByte;
boolean endFlow= false;
do {
singleByte= in.read();
endFlow = singleByte == -1;
if (!endFlow) {
read[numReadBytes] = (byte) singleByte;
numReadBytes++;
}
} while (!endFlow);
if (numReadBytes> 0) {
// Here you implement some code to store the array of bytes as a file
storeDataWherever(read);
}
}
} catch (IOException e) {
Log.e(TAG + " - Conexion", e.getMessage());
} catch (ArrayIndexOutOfBoundsException e){
Log.e(TAG + " - Conexion", getString(R.string.e_respuesta_size));
}
тот же вопрос: http://stackoverflow.com/questions/4069593/android-webview-with-custom- download-folder, но без ответа. –
Кто-нибудь с ответом? –
В качестве взлома/решения: не используйте браузер для загрузки. Управляйте загрузкой самостоятельно, , и вы можете хранить ее там, где можете писать. Если вы используете браузер для загрузки, он загрузится там, где хочет браузер , а не туда, куда вы хотите. –