Lorsque vous essayez votre nouvelle application Android, vous souhaitez tester son WebView. Cependant, vous pouvez remarquer une erreur empêchant le rendu d’une page de navigateur dans l’application. Cela peut avoir un impact négatif sur l’expérience utilisateur (UX) de votre application.
Heureusement, vous pouvez facilement corriger l’erreur ERR_UNKNOWN_URL_SCHEME. En amont, vous devrez peut-être désactiver les extensions Chrome ou simplement vider le cache. Les développeurs peuvent également désactiver les URL non standard dans le codage de l’application.
Dans cet article, nous expliquerons ce qu’est l’erreur ERR_UNKNOWN_URL_SCHEME et ce qui la provoque. Ensuite, nous vous montrerons comment la corriger à la fois sur le frontend et le backend. C’est parti !
Qu’est-ce que l’erreur ERR_UNKNOWN_URL_SCHEME ?
Pour comprendre l’erreur ERR_UNKNOWN_URL_SCHEME, parlons d’abord des applications natives. Pour faire simple, une application native est installée sur un appareil mobile et conçue pour un système d’exploitation spécifique.
Vous pouvez trouver des applications natives dans l’App Store ou le Google Play Store :
Actuellement, Android contrôle 72 % du marché des systèmes d’exploitation mobiles. C’est pourquoi vous voudrez peut-être développer votre application native pour le Google Play Store. Pour ce faire, vous utiliserez Android Studio, qui est l’environnement de développement intégré (IDE) d’Android :
Lorsque vous développez votre application, il est important de permettre aux utilisateurs de visualiser le contenu du navigateur web intégré. Les utilisateurs qui n’ont pas à faire l’aller-retour entre un navigateur et votre application auront une expérience utilisateur plus cohérente.
Pour ajouter cette fonctionnalité à votre application, vous utiliserez WebView. Cette classe spéciale affiche des pages web directement à partir d’une application native. Bien que le navigateur ne dispose pas de fonctions étendues comme une barre de recherche ou des contrôles de navigation, WebView rendra avec succès une page web.
Toutefois, votre application native pourrait également produire une erreur ERR_UNKNOWN_URL_SCHEME. Dans ce cas, le site web demandé a un schéma d’URL que le dispositif mobile ne peut pas reconnaitre.
L’erreur ERR_UNKNOWN_URL_SCHEME est généralement un bogue de Chromium. C’est un problème important depuis Chrome 40. Cependant, il peut avoir plusieurs causes différentes.
Quelles sont les causes de l’erreur ERR_UNKNOWN_URL_SCHEME ?
Bien que WebView puisse être utile dans les applications natives, il n’est équipé que pour traiter quelques schémas URL différents. Un schéma URL fournit des informations sur la manière dont l’URL doit être interprétée.
Les schémas URL standard sont « https:// » et « http:// ». Voici quelques schémas URL susceptibles de provoquer le message ERR_UNKNOWN_URL_SCHEME :
- mailto://
- whatsapp://
- file://
- telnet://
- intent://
- market://
- app://
- mail://
- acheter://
Si vous êtes un développeur d’applications, vous devrez utiliser un codage d’URL spécifique pour empêcher ces schémas d’URL de provoquer des erreurs. Sinon, les utilisateurs ne seront pas en mesure d’utiliser WebView dans votre application native.
Par ailleurs, l’erreur ERR_UNKNOWN_URL_SCHEME peut se produire lorsqu’un utilisateur tente d’ouvrir une URL redirigée. Vous pouvez également voir ce message après avoir utilisé OAuth avec une carte Chrome personnalisée.
Comment corriger l’erreur ERR_UNKNOWN_URL_SCHEME (8 méthodes)
Pour les développeurs, l’erreur ERR_UNKNOWN_URL_SCHEME signifie que la WebView de votre application n’affiche pas efficacement les pages du navigateur web. Cela empêche les utilisateurs de voir le bon contenu.
Que vous soyez un développeur ou un utilisateur frontend, il existe plusieurs façons de résoudre le problème. Voici huit solutions !
1. Désactivez les extensions Chrome
De nombreuses erreurs Chrome peuvent être résolues en dépannant les extensions de votre navigateur. Pour ce faire, allez dans Plus d’outils > Extensions. Sinon, vous pouvez simplement rechercher « chrome://extensions/ » :
Sur cette page, vous verrez une liste de vos extensions Chrome installées. Tout d’abord, désactivez-les toutes à l’aide du commutateur situé dans le coin inférieur droit :
Ensuite, vérifiez si le problème a été résolu. Si c’est le cas, vous saurez qu’il y avait un problème avec l’une des extensions.
Pour savoir quelle extension était à l’origine de l’erreur ERR_UNKNOWN_URL_SCHEME, réactivez-les une par une. Après avoir réactivé une extension, voyez si le problème réapparait. Si c’est le cas, supprimez complètement cette extension.
2. Effacez le cache et les cookies de Chrome
Lorsque vous naviguez sur Internet, votre navigateur enregistre les données des sites web dans un cache. Cela permet de s’assurer que votre deuxième visite se déroule beaucoup plus rapidement. Cependant, ces données en cache peuvent facilement être corrompues.
Si la première solution n’a pas permis de résoudre l’erreur ERR_UNKNOWN_URL_SCHEME, vous devrez peut-être vider le cache de votre navigateur. Dans Google Chrome, accédez à Plus d’outils > Effacer les données de navigation:
Ensuite, veillez à sélectionner Images et fichiers en cache. Si vous le souhaitez, vous pouvez également effacer votre historique de navigation, vos cookies et autres données de site enregistrées :
Après cela, essayez de recharger la page que vous essayiez d’atteindre. Si elle s’affiche sans erreur, vous avez résolu le problème !
3. Désactivez l’accélération matérielle
L’accélération matérielle se produit lorsqu’un navigateur utilise le matériel de votre appareil pour en augmenter l’efficacité. Dans Google Chrome, l’unité de traitement graphique (GPU) de votre appareil commence à traiter les tâches nécessitant des graphismes lourds, comme les jeux ou la lecture de vidéos.
La plupart du temps, l’accélération matérielle permet à Chrome d’effectuer des tâches plus complexes que celles que son logiciel peut prendre en charge. Toutefois, cette fonctionnalité peut également provoquer des ralentissements, des blocages et même des plantages.
Par conséquent, vous pouvez souhaiter désactiver l’accélération matérielle. Tout d’abord, ouvrez la page Paramètres de Chrome. Ensuite, cliquez sur l’onglet Système:
Enfin, utilisez l’interrupteur à bascule pour désactiver l’accélération matérielle. Vous serez invité à relancer Chrome avec ce nouveau paramètre.
4. Désactivez votre pare-feu
Une autre raison de l’erreur ERR_UNKNOWN_URL_SCHEME est un pare-feu mal configuré. Pour voir si c’est le cas, vous pouvez désactiver temporairement le pare-feu de votre appareil.
Pour les utilisateurs de Mac, cliquez sur l’icône de la pomme. Ensuite, sélectionnez Paramètres système:
Dans la liste des onglets, cliquez sur Réseau. Ensuite, trouvez l’option Pare-feu et désactivez-la :
Si vous avez un ordinateur Windows, cliquez sur Démarrer et ouvrez Paramètres. Ensuite, naviguez jusqu’à Confidentialité et sécurité > Sécurité Windows > Pare-feu et protection réseau:
Vous devez maintenant sélectionner soit le réseau du domaine, soit le réseau privé, soit le réseau public. Une fois que vous avez fait cela, trouvez le paramètre Pare-feu Microsoft Defender et désactivez-le :
Vous verrez une fenêtre contextuelle de sécurité vous demandant de confirmer votre choix. Cliquez sur OK pour enregistrer la modification.
5. Créez un nouveau profil utilisateur Chrome
Si les méthodes précédentes n’ont pas permis de résoudre l’erreur ERR_UNKNOWN_URL_SCHEME, vous pouvez essayer de créer un tout nouveau profil utilisateur Chrome. Ensuite, voyez si vous pouvez visiter la page sans problème.
Heureusement, Google Chrome permet de personnaliser facilement vos profils. Dans le coin supérieur droit, cliquez sur votre photo de profil. En bas de la fenêtre popup, cliquez sur Ajouter:
Cela vous permettra de configurer un nouveau profil. Vous pouvez soit vous connecter à un compte Chrome existant, soit cliquer sur Continuer sans compte:
Avant de commencer à naviguer, donnez un nom au profil. En outre, vous pouvez personnaliser le jeu de couleurs :
Après cela, vous disposerez d’un nouveau profil Chrome indépendant de vos autres comptes. En utilisant ce profil, essayez de charger la page web cible. Si le problème persiste, il est conseillé de contacter le développeur de l’application, qui résoudra le problème pour vous.
6. Ouvrez l’URL dans une nouvelle fenêtre
Jusqu’à présent, nous avons expliqué comment les utilisateurs peuvent potentiellement résoudre l’erreur ERR_UNKNOWN_URL_SCHEME dans un navigateur. Si vous êtes un développeur, vous devez savoir comment résoudre ce problème pour que votre application ait une WebView sans erreur.
Une solution facile consiste à modifier le code de votre URL href. En incluant un attribut target dans le code HTML de votre application, vous spécifiez comment le navigateur doit être ouvert.
Par exemple, vous pouvez ajouter le code HTML target= »_blank ». Cela ouvrira le WebView dans une nouvelle fenêtre. Voici un exemple :
<a href= »https://www.w3schools.com » target= »_blank »>Visiter W3Schools</a>
Bien que cette solution puisse être efficace à court terme, elle peut avoir un impact négatif sur l’expérience utilisateur (UX) de votre application. Dans le développement web, il est bon d’éviter d’ouvrir de nouvelles fenêtres.
L’extrait de code ci-dessus supprimera le bouton Précédent, ce qui pourrait dérouter les utilisateurs lorsqu’ils voudront revenir à la page précédente.
7. Ajoutez une nouvelle intention
En tant que développeur Android, vous aurez besoin d’utiliser des intentions. Essentiellement, une intention décrit l’action que vous voulez que l’application effectue. Si vous devez corriger une erreur de schéma URL, vous pouvez envisager d’inclure une intention pour que le contenu soit chargé dans une application externe.
Par exemple, vous pourriez vouloir que le schéma URL « maps:// » ouvre l’application de cartes par défaut d’un utilisateur. Par ailleurs, « mailto:// » peut ouvrir l’application de messagerie.
Pour ajouter une nouvelle intention, vous utiliserez une instruction IF. Celle-ci indiquera à l’appareil d’ouvrir des schémas spéciaux dans une application externe pertinente. Toutefois, les URL standard comme « https:// » ou « http:// » s’ouvriront normalement.
Voici à quoi ressemblerait cette intention en action :
@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;
}
}
Cependant, vous pouvez ajouter une intention personnalisée pour des applications externes spécifiques. Si vous voulez envoyer les utilisateurs vers leur Whatsapp installé, voici comment le remplacement de l’URL pourrait changer :
@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();
}
};
};
Ce code permettra à votre application d’ouvrir Whatsapp sur l’appareil d’un utilisateur. S’il n’est pas installé, il y aura un message indiquant aux utilisateurs que « Whatsapp n’a pas été installé »
8. Désactivez les schémas d’URL non standard
Au lieu d’utiliser des intentions, vous pouvez également désactiver complètement les schémas d’URL non standard. Cela vous empêchera d’utiliser tout autre schéma d’URL que « http:// » et « https:// ».
Voici comment mettre cela en œuvre en HTML :
@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;
}
Si un utilisateur clique sur un lien qui utilise un schéma personnalisé, un message s’affichera avec le message « Erreur : Type de lien inconnu ». Comme le WebView de votre application ne prend pas en charge les schémas personnalisés, vous pouvez éviter complètement l’erreur ERR_UNKNOWN_URL_SCHEME.
Résumé
Lorsque les gens utilisent votre application native, ils veulent que les liens externes s’ouvrent dans la même application. Si le site web demandé n’a pas de schéma d’URL connu, l’appareil mobile de l’utilisateur renverra une erreur ERR_UNKNOWN_URL_SCHEME.
En amont, vous pouvez résoudre ce problème dans les navigateurs Chrome en désactivant l’accélération matérielle ou en créant un tout nouveau profil utilisateur. Cependant, dans la plupart des cas, c’est le développeur de l’application qui devra résoudre cette erreur. En tant que développeur, vous pourrez corriger l’erreur ERR_UNKNOWN_URL_SCHEME en ajoutant une nouvelle intention ou en ouvrant l’URL dans une nouvelle fenêtre.
Pendant que vous développez votre application, vous aurez besoin d’un hébergement fiable et stable. Notre hébergement d’applications dispose de 25 centres de données et d’un support par tchat d’experts 24/7, afin que vous puissiez vous concentrer uniquement sur le développement !