Maison > interface Web > js tutoriel > le corps du texte

Comment déterminer l'état d'installation de l'extension Chrome à partir d'un script externe ?

Susan Sarandon
Libérer: 2024-11-17 01:29:03
original
650 Les gens l'ont consulté

How to Determine Chrome Extension Installation Status from an External Script?

Détermination de l'état d'installation de l'extension Chrome à partir d'un script externe

Lors du développement d'une extension Chrome qui interagit avec des scripts JavaScript externes, vous devrez peut-être vérifier si votre extension est installée sur le navigateur d'un utilisateur. Cette fonctionnalité vous permet d'adapter le comportement de votre script en conséquence.

Chrome a introduit une fonctionnalité qui permet aux sites Web externes de communiquer avec des extensions. En incorporant le code suivant dans le script d'arrière-plan de votre extension (background.js), vous pouvez établir un canal de communication :

chrome.runtime.onMessageExternal.addListener(
    function(request, sender, sendResponse) {
        if (request) {
            if (request.message) {
                if (request.message == "version") {
                    sendResponse({version: 1.0});
                }
            }
        }
        return true;
    });
Copier après la connexion

Depuis le site Web externe, vous pouvez lancer un message vers l'extension comme suit :

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;
        }
    });
Copier après la connexion

Ce script vérifiera la présence de votre extension et attribuera une valeur à la variable hasExtension. La seule limitation est la nature asynchrone de la requête, que vous devrez prendre en compte dans votre implémentation.

N'oubliez pas d'ajouter une entrée au fichier manifest.json de votre extension pour spécifier les domaines avec lesquels communiquer en utilisant la syntaxe suivante :

"externally_connectable": {
    "matches": ["*://localhost/*", "*://your.domain.com/*"]
},
Copier après la connexion

Mise à jour 2021 :

Lors de l'appel de chrome.runtime.sendMessage, une exception sera levée si l'extension n'est pas installée ou handicapé. Pour gérer cette situation, ajoutez la validation suivante dans le rappel sendMessage :

if (chrome.runtime.lastError) {
    // handle error
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal