Afin de créer une expérience utilisateur transparente, il est souvent nécessaire de déterminer si un utilisateur dispose d'une extension Chrome spécifique installé. Cela permet aux sites Web d'adapter leur contenu et leurs fonctionnalités en fonction de la présence de l'extension.
Selon les dernières mises à jour, Chrome offre désormais la possibilité d'envoyer des messages d'un site Web vers une extension. Pour y parvenir, suivez ces étapes :
Dans le fichier background.js de l'extension, ajoutez le code suivant :
chrome.runtime.onMessageExternal.addListener( function(request, sender, sendResponse) { if (request) { if (request.message) { if (request.message == "version") { sendResponse({version: 1.0}); } } } return true; });
Depuis le site Internet, vous pouvez envoyer un message au extension :
var hasExtension = false; chrome.runtime.sendMessage(extensionId, { message: "version" }, function (reply) { if (reply) { if (reply.version) { if (reply.version >= requiredVersion) { hasExtension = true; } } } else { hasExtension = false; } });
Notez que le l'échange de messages est asynchrone, vous devrez donc peut-être implémenter une logique pour gérer le potentiel de retard.
Modifier :
Ajouter une entrée au fichier manifest.json spécifiant les domaines autorisés à envoyer des messages à l'extension :
"externally_connectable": { "matches": ["*://localhost/*", "*://your.domain.com/*"] },
Dans le rappel de chrome.runtime.sendMessage, gérez l'erreur potentielle qui peut survenir si l'extension n'est pas installée ou est désactivée :
if (chrome.runtime.lastError) { // handle error }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!