1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
---
title: protocol_handlers
slug: Mozilla/Add-ons/WebExtensions/manifest.json/protocol_handlers
tags:
- Add-ons
- Extensions
- WebExtensions
- manifest.json
translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/protocol_handlers
---
<div>{{AddonSidebar}}</div>
<table class="fullwidth-table standard-table">
<tbody>
<tr>
<th scope="row" style="width: 30%;">Type</th>
<td><code>Tableau</code></td>
</tr>
<tr>
<th scope="row">Obligatoire</th>
<td>Non</td>
</tr>
<tr>
<th scope="row">Exemple</th>
<td>
<pre class="brush: json no-line-numbers">
"protocol_handlers": [
{
"protocol": "ircs",
"name": "IRC Mozilla Extension",
"uriTemplate": "https://irccloud.mozilla.com/#!/%s"
}
]</pre>
</td>
</tr>
</tbody>
</table>
<p>Utilisez cette clé pour enregistrer un ou plusieurs gestionnaires de protocole basés sur le Web.</p>
<p>Un gestionnaire de protocole est une application qui sait comment gérer certains types de liens : par exemple, un client de messagerie est un gestionnaire de protocole pour les liens "mailto:". Lorsque l'utilisateur clique sur un lien "mailto:", le navigateur ouvre l'application sélectionnée comme le gestionnaire pour le protocole "mailto:" (ou offre un choix de gestionnaires, en fonction de leurs paramètres).</p>
<p>Avec cette clé, vous pouvez enregistrer un site Web en tant que gestionnaire pour un protocole particulier. La syntaxe et la sémantique de cette clé ressemblent beaucoup à la fonction <code><a href="/fr/docs/Web/API/Navigator/registerProtocolHandler">Navigator.registerProtocolHandler()</a></code>, excepté que avec <code>registerProtocolHandler()</code> un site Web ne peut s'inscrire lui-même comme un gestionnaire.</p>
<p>Chaque gestionnaire de protocole possède trois propriétés, toutes obligatoires :</p>
<dl>
<dt><code>protocol</code></dt>
<dd>Une chaîne définissant le protocole. Cela doit être soit:
<ul>
<li>L'une des suivantes : "bitcoin", "dat", "dweb", "geo", "gopher", "im", "ipfs", "ipns", "irc", "ircs", "magnet", "mailto", "mms", "news", "nntp", "sip", "sms", "smsto", "ssb", "ssh", "tel", "urn", "webcal", "wtai", "xmpp".</li>
<li>Une chaîne composée d'un nom personnalisé préfixé avec "web+" ou "ext+". Par exemple : "web+foo" ou "ext+foo". Le nom personnalisé doit comporter uniquement des caractères ASCII minuscules. Il est recommandé que les extensions utilisent la forme "ext+".</li>
</ul>
</dd>
<dt><code>name</code></dt>
<dd>Une chaîne représentant le nom du gestionnaire de protocole. Il sera affiché à l'utilisateur lorsqu'il sera interrogé s'il souhaite que ce gestionnaire ouvre le lien.</dd>
<dt><code>uriTemplate</code></dt>
<dd>Une chaîne représentant l'URL du gestionnaire. Cette chaîne doit inclure "%s" comme espace réservé : il sera remplacé par l'URL échappée du document à traiter. Cette URL peut être une vraie URL, ou il peut s'agir d'un numéro de téléphone, d'une adresse de courrier électronique, etc. C'est une <a href="/fr/Add-ons/WebExtensions/Internationalization#Internationalizing_manifest.json">propriété localisable</a>.</dd>
</dl>
<h2 id="Exemple">Exemple</h2>
<pre class="brush: json no-line-numbers">"protocol_handlers": [
{
"protocol": "magnet",
"name": "Magnet Extension",
"uriTemplate": "https://example.com/#!/%s"
}
]</pre>
<p>Les gestionnaires peuvent également être des <a href="/fr/Add-ons/WebExtensions/user_interface/Extension_pages">pages d'extension</a>.</p>
<pre class="brush: json no-line-numbers">"protocol_handlers": [
{
"protocol": "magnet",
"name": "Magnet Extension",
"uriTemplate": "/example.xhtml#!/%s"
}
]</pre>
<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
<p>{{Compat("webextensions.manifest.protocol_handlers")}}</p>
|