Guten Abend zusammen,
ich habe eine App für macOS und möchte diese durch eine Safari-Ext erweitern. In der App sollen auf Knopfdruck Daten an die Safari-Ext übergeben werden, welche die Ext dann auf der Website in ein Formular übergibt. Das JS für letzteres ist ja noch einfach. Aber leider funktioniert die Übergabe nicht.
In meiner App habe ich folgende func:
Alles anzeigen
Die background.js sollte jetzt darauf hören:
Alles anzeigen
Leider kommt in der background.js nichts an. In der Konsole kommt kein "im Listener" raus, wenn ich den Button drücke.
Muss ich in der manifest was besonderes einstellen? Oder muss ich an der Sandbox oder in der info.plist oder sonst wo was einstellen? Hat hier jemand Erfahrungen?
ich habe eine App für macOS und möchte diese durch eine Safari-Ext erweitern. In der App sollen auf Knopfdruck Daten an die Safari-Ext übergeben werden, welche die Ext dann auf der Website in ein Formular übergibt. Das JS für letzteres ist ja noch einfach. Aber leider funktioniert die Übergabe nicht.
In meiner App habe ich folgende func:
Quellcode
- func sendMessageToSafariExtension() {
- let message = [
- "action": "fillForm",
- "user_login": "deinBenutzername",
- "user_pass": "deinPasswort"
- ]
- SFSafariApplication.dispatchMessage(withName: "fillForm",
- toExtensionWithIdentifier: "de.xxxxxx.Safari-Web-Test.Inject",
- userInfo: message) { error in
- if let error = error {
- print("Fehler beim Senden der Nachricht: \(error.localizedDescription)")
- } else {
- print("Nachricht erfolgreich gesendet.")
- }
- }
- }
Die background.js sollte jetzt darauf hören:
JavaScript-Quellcode
- // Wartet auf Nachrichten von der App
- console.log("in der background.js")
- browser.runtime.onMessageExternal.addListener((message, sender, sendResponse) => {
- console.log("im Listener")
- if (message.action === "fillForm") {
- // Nachricht an das Content-Script weiterleiten
- browser.tabs.query({ active: true, currentWindow: true }, (tabs) => {
- if (tabs.length > 0) {
- browser.tabs.sendMessage(tabs[0].id, {
- action: "fillForm",
- user_login: message.user_login,
- user_pass: message.user_pass
- });
- }
- });
- sendResponse({ status: "ok" });
- }
- });
Leider kommt in der background.js nichts an. In der Konsole kommt kein "im Listener" raus, wenn ich den Button drücke.
Muss ich in der manifest was besonderes einstellen? Oder muss ich an der Sandbox oder in der info.plist oder sonst wo was einstellen? Hat hier jemand Erfahrungen?