Я работаю над расширением ASAFRI-WEB, сначала создал расширение Chrome, а затем использовал команду XCRUN SAFARI-WEB-EXTENSE-CONVERTER/PATH/TO/EXTENSION , чтобы преобразовать его в Safari. Содержимое файла HTML, он использует
Extension Installation Checker
This page tests if your extension is installed by sending a message to it.
Check for Extension
document.getElementById('checkButton').addEventListener('click', checkExtension);
async function checkExtension() {
const extensionId = "I USED MY EXTENSION ID HERE ";
const resultDiv = document.getElementById('result');
resultDiv.textContent = "Checking...";
resultDiv.className = "";
try {
// Try to send message to extension
const response = await browser.runtime.sendMessage(extensionId, {
type: "PING",
message: "Are you there?"
});
if (response) {
resultDiv.textContent = `✅ Extension is installed! Response: ${JSON.stringify(response)}`;
resultDiv.className = "installed";
} else {
resultDiv.textContent = "⚠️ Extension may be installed but didn't respond";
resultDiv.className = "not-installed";
}
} catch (error) {
resultDiv.textContent = `❌ Extension not detected or error: ${error.message}`;
resultDiv.className = "not-installed";
console.error("Error:", error);
}
}
< /code>
На фоне.browser.runtime.onMessageExternal.addListener((request, sender, sendResponse) => {
if (request.type === "PING") {
sendResponse({ status: "OK", version: "1.0" });
}
});
< /code>
А вот как выглядит мой манифест < /p>
{
"manifest_version": 3,
"name": "__MSG_extension_name__",
"description": "__MSG_extension_description__",
"version": "1.0",
"default_locale": "en",
"icons": {
"48": "images/icon-48.png",
"96": "images/icon-96.png",
"128": "images/icon-128.png",
"256": "images/icon-256.png",
"512": "images/icon-512.png"
},
"background": {
"service_worker": "background.js"
},
"permissions": [
"tabs"
],
"host_permissions": [
"https://*.ngrok-free.app/*"
],
"externally_connectable": {
"matches": [
"https://8e85-91-201-165-34.ngrok-free.app/*"
]
},
"content_scripts": [
{
"matches": ["https://*.ngrok-free.app/*"],
"js": ["content.js"]
}
]
}
Моя проблема заключается в том, что я никогда не получаю сообщение на фоне. Сафари Связь между расширением и веб -страницей не работает, как я могу это исправить
Я работаю над расширением ASAFRI-WEB, сначала создал расширение Chrome, а затем использовал команду XCRUN SAFARI-WEB-EXTENSE-CONVERTER/PATH/TO/EXTENSION , чтобы преобразовать его в Safari. Содержимое файла HTML, он использует[code] browser.runtime.sendMessage(extensionId[/code] ..) для отправки [code] Extension Installation Checker This page tests if your extension is installed by sending a message to it.
[/code] Моя проблема заключается в том, что я никогда не получаю сообщение на фоне. Сафари Связь между расширением и веб -страницей не работает, как я могу это исправить