Error bei tel: net :: ERR_UNKNOWN_URL_SCHEME

  • Hallo!
    Habe mit Android Studio einen kleine APP mit webview erstellt die eine Webseite laden soll. Das ganze funktioniert gut. Das einzige Problem das ich habe ist, dass innerhalb der Webseite div. Einträge gelistet sind die auf eine Telefonnummer hinweisen. Es handelt sich dabei um einen Button. Wenn man da drauf klickt sollte die jeweilige Person angerufen werden. Außerhalb der APP im Browser (IOS als auch Android) läuft es fehlerfrei. Beim klicken des Buttons erhalte ich die Möglichkeit die angeführte Tel. anzurufen.


    Wenn ich in der APP drauf klicke bekomme ich folgende Fehlermeldung:
    Webseite nicht verfügbar
    Die Webseite unter tel:0xxxxxxxxx konte nicht geladen weil:


    net::ERR_UNKNOWN_URL_SCHEME


    So sieht mein MainActivity.java File aus:




    Ich habe ein wenig im Internet recherchiert und den Code um folgende Zeilen erweitert:




    Leider ohne Erfolg. Ich bekomme nach wie vor die Fehlermeldung:
    Webseite nicht verfügbar
    Die Webseite unter tel:0xxxxxxxxx konte nicht geladen weil:


    net::ERR_UNKNOWN_URL_SCHEME


    Würde mich sehr freuen, wenn ihr mit weiterhelfen könntet ^^ ^^ ^^



    DANKE
    Liebe Grüße
    shotput2020

  • Hallo yogimuc!


    Ich glaub nicht, dass der Befehl verarbeitet wird. Weil egal was ich da ab Codezeile 53 mache ändert nichts. Ich habe viele Versuche unternomme. Alles mit dem gleichen Ergebis:
    Webseite nicht verfügbar
    Die Webseite unter tel:0xxxxxxxxx konte nicht geladen weil:


    net::ERR_UNKNOWN_URL_SCHEME


    Die gesamte MainActivity.java File sieht so aus:


    Aus der DOKU werde ich leider nicht schlau. Ich würde bitte nur Hilfe benöten um diese urlx.startsWith("tel:") korrekt zu verarbeiten.
    Der Rest läuft ja problemlos.


    lg
    shotput2020

  • Wieso hast du diese Methode zweimal?
    shouldOverrideUrlLoading


    Einmal in der onCreate reicht.


    Die zweite Methode wird bestimmt gar nicht aufgerufen werden.
    Zwei ist falsch macht hier keinen Sinn.


    Nur einen listener in der onCrate setzen. In dem die URL prüfen wenn es die gewünschte URL ist denn intent starten und false zurück geben.


    Ist die URL keine tel einfach true zurück geben ohne die URL neu zu laden.I



    Note: Do not call WebView#loadUrl(String) with the same URL and then return true. This unnecessarily cancels the current load and starts a new load with the same URL. The correct way to continue loading a given URL is to simply return false, without calling WebView#loadUrl(String).

  • Danke für deine Anregung jogimuc
    Ich befürchte ich verstehe nur Bahnhof :)


    Einmal shouldOverrideUrlLoading habe ich entfernt.
    Mit dem Rest komme ich nicht weiter weil ich leider nicht verstehe was du meinst.


    Wäre trotzdem über Hilfe sehr dankbar :)
    So sieht die MainActivity.java jetzt aus. Fehlermeldung unverändert :)




    lg
    shotput2020

  • danke für deine mühen jogimuc.
    Ich verstehe leider nicht was du meinst versuche aber step by step...
    Stimmt mein ursprungsfile?


    ich habe keinen plan wie wie die tel: funktion einbauen soll.
    lg
    shotput2020

  • HURRA!!!!!!!!!!!!!
    DANKE jogimuc!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    ich habe es :) geschafft!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


    So funktioniert es :)


    Liebe Grüße
    shotput2020

  • Code
    public boolean shouldOverrideUrlLoading(WebView viewx, String urlx) {
            if (urlx.startsWith("tel:")) {
                Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(urlx));
                startActivity(intent);
                return false;
            }
            
            return true;
        }

    ob das mit deinem prüfen der url "urlx" so richtig ist kann ich nicht sagen. Dazu müsstest du schon Debuggen was in der Variablen enthalten ist.
    Vielleicht machst du ein Log an der Stelle und gibst so den Inhalt aus.


    Auch ist dein Intent wenn es überhaupt aufgerufen wird nun vollständig.
    Frage wo übergibst du denn die vermeintlichen Nummer. Die musst du dier schon aus der URL holten.
    Dein pars wird so auch nicht gegen das wird der Tel Dialer nicht verstehen.


    Lasse dir mal anzeigen was in dem String urlx ist.
    Setze einen brackpoint in den listener wenn du nicht weißt was das ist solltest du dich mal mit debuggen beschäftigen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!