Bestimmen des Installationsstatus der Chrome-Erweiterung anhand eines externen Skripts
Bei der Entwicklung einer Chrome-Erweiterung, die mit externen JavaScript-Skripten interagiert, müssen Sie möglicherweise feststellen, ob Ihre Erweiterung ist im Browser eines Benutzers installiert. Mit dieser Funktion können Sie das Verhalten Ihres Skripts entsprechend anpassen.
Chrome hat eine Funktion eingeführt, die es externen Websites ermöglicht, mit Erweiterungen zu kommunizieren. Durch die Einbindung des folgenden Codes in das Hintergrundskript Ihrer Erweiterung (background.js) können Sie einen Kommunikationskanal einrichten:
chrome.runtime.onMessageExternal.addListener( function(request, sender, sendResponse) { if (request) { if (request.message) { if (request.message == "version") { sendResponse({version: 1.0}); } } } return true; });
Von der externen Website aus können Sie wie folgt eine Nachricht an die Erweiterung initiieren:
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; } });
Dieses Skript prüft, ob Ihre Erweiterung vorhanden ist und weist der Variablen hasExtension einen Wert zu. Die einzige Einschränkung ist die asynchrone Natur der Anfrage, die Sie in Ihrer Implementierung berücksichtigen müssen.
Denken Sie daran, der Datei manifest.json Ihrer Erweiterung einen Eintrag hinzuzufügen, um die Domänen anzugeben, mit denen kommuniziert werden kann Verwenden Sie dazu die folgende Syntax:
"externally_connectable": { "matches": ["*://localhost/*", "*://your.domain.com/*"] },
Update 2021:
Beim Aufruf von chrome.runtime.sendMessage wird eine Ausnahme ausgelöst, wenn die Erweiterung nicht installiert ist oder deaktiviert. Um diese Situation zu bewältigen, fügen Sie die folgende Validierung innerhalb des sendMessage-Rückrufs hinzu:
if (chrome.runtime.lastError) { // handle error }
Das obige ist der detaillierte Inhalt vonWie kann der Installationsstatus der Chrome-Erweiterung anhand eines externen Skripts ermittelt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!