Safari-Erweiterung Fragen

Ich bin in den Prozess des Aufbaus meine erste Safari-Erweiterung-eine sehr einfache-aber ich habe ein paar Probleme. Die Erweiterung läuft darauf hinaus, eine einzige, injizierte Skript, das versucht zu umgehen, um den systemeigenen feed-handler und-Umleitung auf einen http -://- URI. Meine Themen bisher sind von zweierlei Art:

  1. Die "whitelist" nicht so funktioniert, wie ich es erwarten würde. Da alle feeds angezeigt werden, unter "feed://" Protokoll, habe ich versucht, zu erfassen, die in die whitelist als "feed://*/*" (mit nichts in der blacklist), aber ich am Ende in einem Anfrage-Schleife, die ich nicht verstehen kann. Wenn ich blacklist Werte von "http://*/*" und "https://*/*", funktioniert alles wie erwartet.
  2. Ich kann nicht herausfinden, wie Zugriff auf meine Einstellungen aus meinem Skript injiziert. Das Skript erstellt eine beforeload event-handler, kann aber keinen Zugriff auf meine Einstellungen mit der safari.extension.settings Pfad angegeben in der Dokumentation.

Habe ich noch nicht gefunden, was in der Apple-Dokumentation, um anzuzeigen, dass die Einstellungen nicht frei ist von meinem script. Da Erweiterungen wie eine neue Funktion, die auch Google gibt begrenzte relevanten Ergebnisse und die meisten von denen sind aus der offiziellen Dokumentation.

Was bin ich?

UPDATE
Also ich bin der Hoffnung, dass die Dokumentation unvollständig ist, weil es grenzwertig miserabel, aber ich habe gelernt, ein wenig über die Einstellungen. Es stellt sich heraus, dass bei der Injektion von Skripts, die SafariExtensionSettings Objekt ist nicht verfügbar. Injektion Skripte nur Zugriff auf die SafariContentExtension - Objekt (das ist nicht sinnvoll, bei allen), aber es ist alias in genau der gleichen Weise (safari.extension.settings)--schlechte Idee, IMO. Wie bereits in der injection-script Dokumentation:

Wichtig: Wenn Sie mit safari.Erweiterung innerhalb einer eingebundenen Skript, sind Sie nicht an die SafariExtension Klasse. Sie sind der Bewältigung der SafariContentExtension Klasse.

Verwenden Sie das messaging-system sprechen für eine Globale HTML-Datei, die den Zugriff auf die Einstellungen. Es ist irgendwie durchgeknallt, aber ich habe eine Nachricht gesendet an einen global.html - Datei, ruft die Einstellungen und schickt eine Nachricht zurück zu meinem injection script, sobald ich herausfinden, wie man dies tun.

Da mache ich alle meine arbeiten, bevor das Dokument geladen wird, alle Methoden die ich gefunden habe, um eine Nachricht zu senden zurück verlassen Sie sich auf ein page-Objekt, dass ich nicht zu haben.

Schreibe einen Kommentar