Android WebView kann keine Dateien herunterladenAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 Android WebView kann keine Dateien herunterladen

Post by Anonymous »

Ich arbeite mit einer HTML -Anwendung. Was ich in WebView studiert hatte, da die Website die PDF -Datei herunterladen kann.

Ausgabe ist, dass beim Laden dieser URL im Gerätebrowser die PDF -Datei automatisch heruntergeladen wird, aber in WebView kann diese Datei, die ich unten verwendet hatte, nicht herunterladen. < /p>

Code: Select all

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);
}
}
In Browser Wenn URL -Dowload -PDF -Datei in dieser URL dowloading lance & download = true) im Browser Es download, aber WebView kann dies nicht herunterladen < /p>

Ich hatte Überprüfen Sie diese URL bereits. Es funktioniert nicht, wie Sie einen Download -Manager in einem WebView verwenden, um PDF/PPT/DOC -Dateien auf SDCard

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post