Datei in WebView herunterladen

Ich habe eine Webansicht in meiner Android Applikation. Wenn der Benutzer zum Webview geht und auf einen Link klicken, um eine Datei herunterzuladen, passiert nichts.

URL = "my url"; mWebView = (WebView) findViewById(R.id.webview); mWebView.setWebViewClient(new HelloWebViewClient()); mWebView.getSettings().setDefaultZoom(ZoomDensity.FAR); mWebView.loadUrl(URL); Log.v("TheURL", URL); 

Wie kann ich den Download in einer Webansicht aktivieren? Wenn ich die Webansicht deaktiviere und die Absicht behalte, die URL auf den Browser von der Anwendung zu laden, dann lädt der Download nahtlos ein.

  • Probleme zum Abbrechen eines CountDownTimer Android Java
  • Ein- / Ausschalten Kamera LED / Blitzlicht in Samsung Galaxy Ace 2.2.1 & Galaxy Tab
  • RecyclerView und SwipeRefreshLayout
  • GetSupportedPictureSize () gibt einen Wert zurück, der von Nexus4 nicht tatsächlich unterstützt wird
  • Erkennung von Backspace in TextWatcher
  • NativeScript: benutzerdefinierte Kamera-Ansicht
  •  String url = "my url"; Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(url)); startActivity(i); 

    Kann mir da jemand weiterhelfen? Die Seite lädt ohne Problem, aber der Link zu einer Bilddatei in der HTML-Seite funktioniert nicht …

  • Ändern Sie das Gewicht des Layouts mit einer Animation
  • ORDER BY Datum - Realm (Android)
  • Android Studio 3.0: canary 6: android.content.res.Resources $ NotFoundException innerhalb Starten von Aktivitäten
  • Wie macht man das Android-Gerät eine TCP-Verbindung zum Internet ohne Wake Lock?
  • Verwendung von Software / Hardware-unterstützten Android Keystore und möglichen Sicherheits- / Usability-Nachteilen
  • Wie programmgesteuert man einen Screenshot in Android?
  • 4 Solutions collect form web for “Datei in WebView herunterladen”

    Hast du es versucht?

     mWebView.setDownloadListener(new DownloadListener() { public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) { Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(url)); startActivity(i); } }); 

    Probieren Sie das aus. Nachdem ich viele Beiträge und Foren durchgemacht habe, habe ich das gefunden.

     mWebView.setDownloadListener(new DownloadListener() { @Override public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) { DownloadManager.Request request = new DownloadManager.Request( Uri.parse(url)); request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); //Notify client once download is completed! request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "Name of your downloadble file goes here, example: Mathematics II "); DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); dm.enqueue(request); Toast.makeText(getApplicationContext(), "Downloading File", //To notify the Client that the file is being downloaded Toast.LENGTH_LONG).show(); } }); 

    Vergessen Sie nicht, diese Erlaubnis zu geben! Dies ist sehr wichtig! Fügen Sie dies in Ihre Manifest-Datei (Die AndroidManifest.xml-Datei)

     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- for your file, say a pdf to work --> 

    Hoffe das hilft. Prost 🙂

    Versuchen Sie mit Download-Manager, die Ihnen helfen können, laden Sie alles, was Sie wollen und sparen Sie Zeit.

    Überprüfen Sie diese auf Optionen:

    Option 1 ->

      mWebView.setDownloadListener(new DownloadListener() { public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) { Request request = new Request( Uri.parse(url)); request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "download"); DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); dm.enqueue(request); } }); 

    Option 2 ->

     if(mWebview.getUrl().contains(".mp3") { Request request = new Request( Uri.parse(url)); request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "download"); // You can change the name of the downloads, by changing "download" to everything you want, such as the mWebview title... DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); dm.enqueue(request); } 
      mwebView.setDownloadListener(new DownloadListener() { @Override public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimeType, long contentLength) { DownloadManager.Request request = new DownloadManager.Request( Uri.parse(url)); request.setMimeType(mimeType); String cookies = CookieManager.getInstance().getCookie(url); request.addRequestHeader("cookie", cookies); request.addRequestHeader("User-Agent", userAgent); request.setDescription("Downloading file..."); request.setTitle(URLUtil.guessFileName(url, contentDisposition, mimeType)); request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setDestinationInExternalPublicDir( Environment.DIRECTORY_DOWNLOADS, URLUtil.guessFileName( url, contentDisposition, mimeType)); DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); dm.enqueue(request); Toast.makeText(getApplicationContext(), "Downloading File", Toast.LENGTH_LONG).show(); }}); 
    Das Android ist ein Google Android Fan-Website, Alles über Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.