Wenn du deine neue Android-App ausprobierst, möchtest du sicher auch die WebView testen. Vielleicht bemerkst du jedoch einen Fehler, der verhindert, dass eine Browserseite in der App angezeigt wird. Das kann sich negativ auf die User Experience (UX) deiner App auswirken.

Zum Glück kannst du den Fehler ERR_UNKNOWN_URL_SCHEME leicht beheben. Auf der Frontseite musst du eventuell Chrome-Erweiterungen deaktivieren oder einfach den Cache leeren. Alternativ können Entwickler nicht standardisierte URLs im Code der App deaktivieren.

In diesem Beitrag erklären wir dir, was der ERR_UNKNOWN_URL_SCHEME-Fehler ist und welche Ursachen er hat. Dann zeigen wir dir, wie du ihn sowohl im Front- als auch im Backend beheben kannst. Los geht’s!

Was ist der ERR_UNKNOWN_URL_SCHEME-Fehler?

Um den ERR_UNKNOWN_URL_SCHEME-Fehler zu verstehen, sollten wir zunächst über native Anwendungen sprechen. Vereinfacht gesagt, wird eine native Anwendung auf einem mobilen Gerät installiert und für ein bestimmtes Betriebssystem entwickelt.

Du findest native Apps im App Store oder im Google Play Store:

Ein Screenshot aus dem Google Play Store
Google Play Store

Derzeit kontrolliert Android 72% des Marktes für mobile Betriebssysteme. Aus diesem Grund möchtest du vielleicht deine native App für den Google Play Store entwickeln. Dazu verwendest du Android Studio, die integrierte Entwicklungsumgebung (IDE) von Android:

Android Studio Website
Android Studio

Bei der Entwicklung deiner App ist es wichtig, dass du den Nutzern die Möglichkeit gibst, eingebettete Webbrowser-Inhalte anzuzeigen. Nutzer/innen, die nicht zwischen Browser und App hin und her navigieren müssen, haben eine konsistentere UX.

Um diese Funktion zu deiner App hinzuzufügen, verwendest du WebView. Diese spezielle Klasse zeigt Webseiten direkt aus einer nativen App heraus an. Auch wenn der Browser nicht über umfangreiche Funktionen wie eine Suchleiste oder Navigationssteuerungen verfügt, kann WebView eine Webseite erfolgreich darstellen.

Allerdings könnte deine native App auch einen ERR_UNKNOWN_URL_SCHEME-Fehler produzieren. In diesem Fall hat die angeforderte Webseite ein URL-Schema, das das mobile Gerät nicht erkennen kann.

Der ERR_UNKNOWN_URL_SCHEME ist in der Regel ein Chromium-Bug. Er ist seit Chrome 40 ein bekanntes Problem. Er kann jedoch verschiedene Ursachen haben.

Wodurch wird der Fehler ERR_UNKOWN_URL_SCHEME verursacht?

Obwohl WebView in nativen Apps nützlich sein kann, ist es nur in der Lage, ein paar verschiedene URL-Schemata zu verarbeiten. Ein URL-Schema gibt Auskunft darüber, wie die URL interpretiert werden soll.

Die Standard-URL-Schemata sind „https://“ und „http://“. Hier sind einige URL-Schemata, die den Fehler ERR_UNKNOWN_URL_SCHEME verursachen können:

  • mailto://
  • whatsapp://
  • datei://
  • telnet://
  • absicht://
  • markt://
  • app://
  • mail://
  • kaufen://

Wenn du eine App entwickelst, musst du eine spezielle URL-Kodierung verwenden, um zu verhindern, dass diese URL-Schemata Fehler verursachen. Andernfalls können die Nutzer WebView in deiner nativen App nicht verwenden.

Alternativ dazu kann der Fehler ERR_UNKNOWN_URL_SCHEME auftreten, wenn ein Nutzer versucht, eine umgeleitete URL zu öffnen. Diese Meldung kann auch erscheinen, wenn du OAuth mit einer benutzerdefinierten Chrome-Karte verwendest.

So behebst du den ERR_UNKOWN_URL_SCHEME-Fehler (8 Methoden)

Für Entwickler bedeutet der ERR_UNKNOWN_URL_SCHEME-Fehler, dass die WebView deiner App die Seiten des Webbrowsers nicht richtig anzeigt. Dadurch wird verhindert, dass die Nutzer den richtigen Inhalt sehen.

Egal, ob du ein Entwickler oder ein Frontend-Benutzer bist, es gibt ein paar Möglichkeiten, das Problem zu beheben. Hier sind acht Lösungsvorschläge!

1. Deaktiviere Chrome-Erweiterungen

Viele Chrome-Fehler lassen sich beheben, indem du die Erweiterungen deines Browsers behebst. Dazu gehst du zu Mehr Tools > Erweiterungen. Alternativ kannst du auch einfach nach „chrome://extensions/“ suchen:

Open Chrome Erweiterungen
Chrome-Erweiterungen öffnen

Auf dieser Seite siehst du eine Liste mit deinen installierten Chrome-Erweiterungen. Deaktiviere zunächst alle Erweiterungen mit dem Schalter in der rechten unteren Ecke:

Disable Chrome Erweiterungen
Chrome-Erweiterungen deaktivieren

Überprüfe dann, ob das Problem behoben wurde. Wenn ja, weißt du, dass es ein Problem mit einer der Erweiterungen gab.

Um herauszufinden, welche Erweiterung den Fehler ERR_UNKNOWN_URL_SCHEME verursacht hat, aktiviere sie eine nach der anderen wieder. Nachdem du eine Erweiterung aktiviert hast, prüfe, ob das Problem wieder auftaucht. Wenn dies der Fall ist, entferne diese Erweiterung vollständig.

2. Lösche den Chrome-Cache und die Cookies

Wenn du im Internet surfst, speichert dein Browser Daten von Websites in einem Cache. Dadurch wird sichergestellt, dass dein zweiter Besuch viel schneller abläuft. Diese zwischengespeicherten Daten können jedoch leicht beschädigt werden.

Wenn die erste Lösung den Fehler ERR_UNKNOWN_URL_SCHEME nicht beheben konnte, musst du vielleicht deinen Browser-Cache löschen. Gehe in Google Chrome auf Weitere Tools > Browserdaten löschen:

Browsingdaten öffnen
Browsingdaten öffnen

Achte darauf, dass du zwischengespeicherte Bilder und Dateien auswählst. Wenn du möchtest, kannst du auch deinen Browserverlauf, deine Cookies und andere gespeicherte Website-Daten löschen:

Chrome-Cache löschen
Chrome-Cache löschen

Versuche danach, die Seite, die du aufrufen wolltest, erneut zu laden. Wenn sie ohne Fehler angezeigt wird, hast du das Problem behoben!

3. Schalte die Hardware-Beschleunigung aus

Bei der Hardwarebeschleunigung nutzt ein Browser die Hardware deines Geräts, um die Effizienz zu erhöhen. In Google Chrome beginnt die Grafikeinheit (GPU) deines Geräts mit der Verarbeitung von Aufgaben mit hoher Grafikleistung, z. B. Spiele oder Videos.

Meistens ermöglicht die Hardwarebeschleunigung Chrome, komplexere Aufgaben auszuführen, als seine Software unterstützen kann. Allerdings kann diese Funktion auch zu Verzögerungen, Einfrieren und sogar zu Abstürzen führen.

Deshalb solltest du die Hardware-Beschleunigung deaktivieren. Öffne zunächst die Seite Einstellungen von Chrome. Klicke dann auf die Registerkarte System:

Hardware-Beschleunigung deaktivieren
Hardware-Beschleunigung deaktivieren

Schließe den Schalter, um die Hardwarebeschleunigung zu deaktivieren. Du wirst aufgefordert, Chrome mit dieser neuen Einstellung neu zu starten.

4. Deaktiviere deine Firewall

Eine weitere Ursache für den Fehler ERR_UNKNOWN_URL_SCHEME ist eine falsch konfigurierte Firewall. Um zu sehen, ob dies der Fall ist, kannst du die Firewall auf deinem Gerät vorübergehend deaktivieren.

Klicke auf das Apfelsymbol auf dem Mac. Wähle dann Systemeinstellungen:

Mac-Systemeinstellungen
Mac-Systemeinstellungen

Klicke in der Liste der Registerkarten auf Netzwerk. Als Nächstes suchst du die Option Firewall und schaltest sie aus:

Mac-Firewall deaktivieren
Mac-Firewall deaktivieren

Wenn du einen Windows-Computer hast, klicke auf Start und öffne Einstellungen. Navigiere dann zu Datenschutz & Sicherheit > Windows-Sicherheit > Firewall & Netzwerkschutz:

Firewall- und Netzwerkschutzeinstellungen in Windows.
Firewall- und Netzwerkschutzeinstellungen in Windows.

Jetzt musst du entweder das Domain Netzwerk, das private Netzwerk oder das öffentliche Netzwerk auswählen. Sobald du dies getan hast, suche die Einstellung Microsoft Defender Firewall und schalte sie aus:

Deaktivieren der Microsoft Defender Firewall
Deaktivieren der Microsoft Defender Firewall

Es erscheint ein Sicherheits-Popup, in dem du aufgefordert wirst, deine Wahl zu bestätigen. Klicke auf OK, um die Änderung zu speichern.

5. Ein neues Chrome-Benutzerprofil erstellen

Wenn die vorherigen Methoden den Fehler ERR_UNKNOWN_URL_SCHEME nicht lösen konnten, kannst du versuchen, ein komplett neues Chrome-Benutzerprofil zu erstellen. Dann kannst du sehen, ob du die Seite ohne Probleme besuchen kannst.

Glücklicherweise ist es mit Google Chrome ganz einfach, deine Profile anzupassen. Klicke in der oberen rechten Ecke auf dein Profilbild. Klicke unten im Pop-up auf Hinzufügen:

Ein neues Chrome-Profil erstellen
Ein neues Chrome-Profil erstellen

Damit kannst du ein neues Profil einrichten. Du kannst dich entweder mit einem bestehenden Chrome-Konto anmelden oder ohne Konto auf Weiter klicken:

Chrome-Profil einrichten
Chrome-Profil einrichten

Bevor du mit dem Surfen beginnst, gibst du dem Profil einen Namen. Außerdem kannst du das Farbschema anpassen:

Anpassen des Chrome-Profils
Anpassen des Chrome-Profils

Danach hast du ein neues Chrome-Profil, das unabhängig von deinen anderen Konten ist. Versuche mit diesem Profil, die Ziel-Webseite zu laden. Wenn das Problem weiterhin besteht, solltest du dich an den App-Entwickler wenden, der das Problem für dich lösen wird.

6. Öffne die URL in einem neuen Fenster

Bisher haben wir erklärt, wie Nutzer/innen den Fehler ERR_UNKNOWN_URL_SCHEME in einem Browser beheben können. Wenn du ein Entwickler bist, musst du wissen, wie du dieses Problem beheben kannst, damit deine App eine fehlerfreie WebView hat.

Eine einfache Lösung besteht darin, deinen URL href-Code zu bearbeiten. Indem du ein target-Attribut in den HTML-Code deiner App einfügst, legst du fest, wie der Browser geöffnet werden soll.

Du kannst zum Beispiel den HTML-Code target=“_blank“ hinzufügen. Dadurch wird die WebView in einem neuen Fenster geöffnet. Hier ist ein Beispiel:

<a href=“https://www.w3schools.com“ target=“_blank“>Besuche W3Schools</a>

Auch wenn dies kurzfristig eine effektive Lösung sein kann, kann es sich negativ auf die User Experience (UX) deiner App auswirken. Bei der Webentwicklung ist es eine gute Idee, das Öffnen neuer Fenster zu vermeiden.

Der obige Codeschnipsel entfernt den Zurück-Button, der die Nutzer verwirren könnte, wenn sie zur vorherigen Seite zurückkehren wollen.

7. Einen neuen Intent hinzufügen

Als Android-Entwickler wirst du Intents verwenden müssen. Ein Intent beschreibt im Wesentlichen die Aktion, die die App ausführen soll. Wenn du einen Fehler im URL-Schema beheben musst, könntest du eine Absicht hinzufügen, damit der Inhalt in einer externen App geladen wird.

Du könntest zum Beispiel wollen, dass das URL-Schema „maps://“ die Standard-Kartenanwendung eines Nutzers öffnet. Alternativ dazu kann „mailto://“ die Mail-Anwendung öffnen.

Um eine neue Absicht hinzuzufügen, verwendest du eine IF-Anweisung. Damit wird das Gerät angewiesen, spezielle Schemata in einer relevanten externen App zu öffnen. Standard-URLs wie „https://“ oder „http://“ werden jedoch normal geöffnet.

So würde diese Absicht in Aktion aussehen:

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

if (url == null || url.startsWith("http://") || url.startsWith("https://")) {

return false;

}

try {

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

view.getContext().startActivity(intent);

return true;

} catch (Exception e) {

Log.i(TAG, "shouldOverrideUrlLoading Exception:" + e);

return true;

}

}

Du kannst jedoch eine eigene Absicht für bestimmte externe Apps hinzufügen. Wenn du Nutzerinnen und Nutzer zu ihrem installierten Whatsapp schicken willst, könnte die URL-Überschreibung folgendermaßen aussehen:

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

view.loadUrl(url);

if (url.startsWith("whatsapp://")) {

webview.stopLoading();

try {

Intent whatsappIntent = new Intent(Intent.ACTION_SEND);

whatsappIntent.setType("text/plain");

whatsappIntent.setPackage("com.whatsapp");

whatsappIntent.putExtra(Intent.EXTRA_TEXT, webview.getUrl() + " - Shared from webview ");

startActivity(whatsappIntent);

} catch (android.content.ActivityNotFoundException ex) {

String MakeShortText = "Whatsapp has not been installed";

Toast.makeText(WebactivityTab1.this, MakeShortText, Toast.LENGTH_SHORT).show();

}

};

};

Dieser Code ermöglicht es deiner App, Whatsapp auf dem Gerät des Nutzers zu öffnen. Wenn Whatsapp nicht installiert ist, wird eine Meldung angezeigt, die besagt, dass Whatsapp nicht installiert wurde.

8. Nicht-Standard-URL-Schemata deaktivieren

Anstatt Intents zu verwenden, kannst du auch nicht-standardmäßige URL-Schemata komplett deaktivieren. So kannst du keine anderen URL-Schemata als „http://“ und „https://“ verwenden.

Hier erfährst du, wie du das in HTML umsetzen kannst:

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

view.loadUrl(url);

if (url.startsWith("http") || url.startsWith("https")) {

return true;

}else {

webview.stopLoading();

webview.goBack();

Toast.makeText(MainActivity.this, "Error: Unknown link type", Toast.LENGTH_SHORT).show();

}

return false;

}

Wenn ein Nutzer auf einen Link klickt, der ein benutzerdefiniertes Schema verwendet, wird eine Toast-Meldung mit dem Text „Fehler: Unbekannter Linktyp“. Da die WebView deiner App keine benutzerdefinierten Schemata unterstützt, kannst du den Fehler ERR_UNKNOWN_URL_SCHEME komplett vermeiden.

Zusammenfassung

Wenn Nutzer deine native App verwenden, wollen sie, dass externe Links innerhalb derselben Anwendung geöffnet werden. Wenn die angeforderte Website kein bekanntes URL-Schema hat, meldet das Mobilgerät des Nutzers einen ERR_UNKNOWN_URL_SCHEME-Fehler.

Du kannst dieses Problem in Chrome-Browsern beheben, indem du die Hardwarebeschleunigung ausschaltest oder ein völlig neues Benutzerprofil erstellst. In den meisten Fällen muss jedoch der Entwickler der App diesen Fehler beheben. Als Entwickler kannst du den Fehler ERR_UNKNOWN_URL_SCHEME beheben, indem du eine neue Absicht hinzufügst oder die URL in einem neuen Fenster öffnest.

Während du deine App entwickelst, brauchst du ein zuverlässiges und stabiles Hosting. Unser Anwendungshosting verfügt über 25 Rechenzentren und einen 24/7 Experten-Chat-Support, damit du dich ganz auf die Entwicklung konzentrieren kannst!