WebView DownloadListener ruft onDownloadStart nicht auf

  • Antworten:7
Sync
  • Forum-Beiträge: 9

02.12.2016, 15:26:29 via Website

Hi,

ich versuche eine .csv Datei von einer Webseite runterzuladen. Leider reagier mein WebView nach betätigung des Download-Buttons nicht. Die Methode onDownloadStart wird nichtmal aufgerufen.

        WebView webView = (WebView) findViewById(R.id.wv_redis);
webView.getSettings().setJavaScriptEnabled(true);

webView.loadUrl("h ttps://www.netztransparenz.de/EnWG/Redispatch");

webView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        view.setDownloadListener(new Downloader());
        return true;
    }
});

private class Downloader implements DownloadListener {
@Override
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {

    Log.d(LOG_TAG, "On Download start called..");

    Intent i = new Intent(Intent.ACTION_VIEW);
    i.setData(Uri.parse(url));
    startActivity(i);
    Toast.makeText(getApplicationContext(), "Download started..",
            Toast.LENGTH_SHORT).show();
}

}

Mit dem Android Browser funktioniert der Download einwandfrei.

Hoffe ihr könnt mir weiterhelfen:)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

02.12.2016, 19:32:52 via App

Klickst du zum downloaden noch auf einen Link oder ist die URL komplett?

— geändert am 02.12.2016, 19:33:04

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Sync
  • Forum-Beiträge: 9

02.12.2016, 21:53:48 via Website

Gebe für den Download nur Start - Enddatum ein und betätige den Download Button (link: https:/ /www.netztransparenz.de/EnWG/Redispatch). Der Download von Dateien von anderen Seiten funktioniert. Liegt es am http*s*?

Hab es gerade auch nochmal mit der Library AdvancedWebView probiert. Funktioniert leider auch nicht..

Nur mit dem Standart Android Browser funktioniert es.

— geändert am 02.12.2016, 21:59:51

Antworten
Sync
  • Forum-Beiträge: 9

05.12.2016, 13:35:02 via Website

Pascal P.

Klickst du zum downloaden noch auf einen Link oder ist die URL komplett?

Hast du vielleicht eine Idee Pascal P? Bin schon seit ner Woche dran und komme einfach nicht weiter. Bekomme die Daten auch nicht per Anfragebefehl vom Server:/

— geändert am 05.12.2016, 13:35:43

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

05.12.2016, 19:20:17 via Website

Du kannst aus ener WebView keine Daten laden?
Das glaub ich kaum...

Aber warum WebView?
Schicke doch über eine HTTP Lib wie okHttp oder Ion,Volles etc.. einen HTTP POST Request an die Seite und Werte den CSV String als Antwort aus.
Willst du diese in der App noch verarbeiten oder nur auf dem Gerät speichern?
Wenn du es eh verarbeiten willst, dann ist die dierekte Methode sogar besser.

Lade dir mal wenn du FireFox benutzt ein Firbug runter und schau was die Seite für Postparameter schickt, diese musst du ja auch nur an die Seite schicken und bekommst deine Datei

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Sync
  • Forum-Beiträge: 9

06.12.2016, 14:05:26 via Website

Genau. Von der Seite kann ich über den WebView keine Daten laden, der DownloadListener wird nicht aufgerufen. Andere Seiten funktionieren problemlos.

Ich will die Daten weiterverarbeiten, das ist richtig. Mit einen HTTP POST Request habe ich es auch versucht, leider bekomme ich damit nur die Webseite als .html wieder und nicht die CSV. Die Anfrageparameter sind auch sehr unübersichtlich, und der Objektzugriff läuft vermutlich via Token?
Bei anderen Webseiten bekomme ich das auch hin aber hier klappt es nicht :'(

Liegt es am https oder an der asynchronen Datenübertragung der Webseite? Vielleicht findest du oder jemand anderes aus dem Forum die Zeit sich das mal anzuschauen, ich habe echt keine Ahnung mehr was ich noch versuchen könnte.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

06.12.2016, 15:16:10 via Website

Wenn ich Zeit hab schaue ich mir das mal an, ich kann dir aber nichts versprechen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Sync
  • Forum-Beiträge: 9

15.12.2016, 17:00:33 via Website

Vielleicht kann es sonst mal jemand anders bei sich im WebView probieren. Komme hier einfach nicht weiter und ich weiß nicht was ich falsch mache (whew)

Antworten