Android WebView не может загрузить файлыAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android WebView не может загрузить файлы

Сообщение Anonymous »

Я работаю с одним приложением HTML. который я просмотрел в WebView, этот сайт позволит загружать PDF -файл.

Теперь проблема заключается в том, что при загрузке URL в браузере устройств он будет загружать автоматический файл PDF, но в WebView не может загрузить этот файл, который я использовал ниже кода. < /p>

Код: Выделить всё

webView.setWebViewClient(new Callback());
webView.setWebChromeClient(new webChromeClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDatabaseEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setSavePassword(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
webView.getSettings().setSupportMultipleWindows(false);
webView.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent,String contentDisposition, String mimetype,long contentLength) {
AppLog.logString(TAG+"setDownloadListener");
AppLog.logString(TAG+"url: "+url);
//Intent intent = new Intent(Intent.ACTION_VIEW);
//intent.setData(Uri.parse(url));
//startActivity(intent);
}
});
webView.loadUrl(url);

private class Callback extends WebViewClient{
String TAG="ClBk: ";
@SuppressWarnings("unused")
@SuppressLint("DefaultLocale")
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
AppLog.logString(TAG+"shouldOverrideUrlLoading");
AppLog.logString(TAG+"url: "+url);

if(!isInternetOncheck()){
intenetDialog();
}else{

boolean value = true;
String extension = MimeTypeMap.getFileExtensionFromUrl(url);
AppLog.logString(TAG+"extension: "+extension);
if (extension != null) {
MimeTypeMap mime = MimeTypeMap.getSingleton();
String mimeType = mime.getMimeTypeFromExtension(extension);
AppLog.logString(TAG+"mimeType: "+mimeType);
if (mimeType != null) {
if (mimeType.contains("application/zip")
||mimeType.toLowerCase().contains("video")
|| extension.toLowerCase().contains("mov")
|| extension.toLowerCase().contains("mp3")) {
AppLog.logString(TAG+"If MimeType for dowloading");
DownloadManager mdDownloadManager = (DownloadManager) MainActivity.this.getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
File destinationFile = new File(Environment.getExternalStorageDirectory(),getFileName(url,extension));
request.setDescription("Downloading via Your app name..");
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationUri(Uri.fromFile(destinationFile));
mdDownloadManager.enqueue(request);
value = false;
}
}
}
if(url.contains(".pdf")){
AppLog.logString(TAG+"pdf");
view.setDownloadListener(new DownloadListener() {
@SuppressLint("NewApi")
public void onDownloadStart(String url, String userAgent,String contentDisposition, String mimetype, long contentLength) {
AppLog.logString(TAG+"download pdf");
startDownloadPDF(url);
}
});
}else if(url.contains(".rar")){
AppLog.logString(TAG+"rar");
view.setDownloadListener(new DownloadListener() {
@SuppressLint("NewApi")
public void onDownloadStart(String url, String userAgent,String contentDisposition, String mimetype, long contentLength) {
AppLog.logString(TAG+"download rar");
startDownloadZBS(url);
}
});
}else{
AppLog.logString(TAG+"else: "+url);
}
progressBar.setVisibility(View.VISIBLE);
view.loadUrl(url);
return true;
}
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
AppLog.logString(TAG+"onPageStarted");
//AppLog.logString(TAG+"url: "+url);
progressBar.setVisibility(View.VISIBLE);
if(!isInternetOncheck()){
intenetDialog();
}
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
AppLog.logString(TAG+"onPageFinished");
//AppLog.logString(TAG+"url: "+url);
progressBar.setVisibility(View.INVISIBLE);
webView.setVisibility(View.VISIBLE);
((RelativeLayout)findViewById(R.id.layoutSplace)).setVisibility(View.GONE);
super.onPageFinished(view, url);
}
}
в браузере, когда URL Dowload File It Dowloading в этом URL (http: /......... Проверьте этот URL -адрес, он не работает, как использовать менеджер загрузки в веб -просмотре, чтобы загрузить файлы PDF/PPT/DOC в SDCARD

Подробнее здесь: https://stackoverflow.com/questions/243 ... load-files
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»