Frage

Was ist der beste Weg, um eine Safari-Erweiterung zu schreiben? Ich habe ein paar XUL Erweiterungen für Firefox geschrieben, und jetzt würde Ich mag Versionen von ihnen für Safari schreiben. Gibt es eine Möglichkeit, dass Sie erlauben würde, Tasten oder Formulare an den Browser-Benutzeroberfläche hinzuzufügen, da dies nicht möglich mit einem Input Manager oder Service-Menü ist?

War es hilfreich?

Lösung

Mit der Veröffentlichung von Safari 5.0, veröffentlichte Apple eine neue Erweiterung Framework für Entwickler. In Funktionen sieht es ähnlich wie Firefox-Erweiterung Framework ermöglicht Schaltflächen anpassen, Symbolleisten, Kontextmenüs, Injektionen mit Hilfe von JavaScript und HTML 5

Mehr unter diesem Link

https://developer.apple.com/documentation/safariextensions

Andere Tipps

Safari Plugin-Entwicklung ist nicht trivial. Die Schnittstelle ist in Objective-C geschrieben, und das meiste davon ist nicht einmal Teil von WebKit (so können Sie die Quelle nicht sehen), aber es gibt Maschinen zu inspizieren und die Objekthierarchie einer laufenden Anwendung patchen. Es erfordert Verständnis von Cocoa und Objective-C, aber nicht niedriger ist.

Hier ist eine Übersicht auf hoher Ebene ich in meinen Lesezeichen des Prozesses http: // livingcode.org/2006/tab-dumping-in-safari . Es geht über Safari Plugins Erstellen von Python mit arbeiten (wahrscheinlich veraltet) Code. Anstelle von Python können Sie alles verwenden, die Objective-C-Bindungen hat.

Es gibt zwei Hauptteile dazu:

die Links Lese oben geben Sie den Umfang des Projekts.

Die Dinge haben sich in letzter Zeit geändert. Apple hat jetzt eine Erweiterung API verfügbar als Teil der Safari 5. Sie mehr erfahren Sie auf Apples Website und von Beitritt zur Safari Developer Program .

Erweiterungen zu Safari haben digital signiert werden, aber man kann das Signaturzertifikat kostenlos von Apple erhalten. Dies ist der legitime Weg, um Ihre Erweiterung in Safari zu bekommen, ohne zu Hacks zurückgreifen, die wahrscheinlich jedes Mal, Apple aktualisiert Safari brechen wird.

Niemand scheint zu haben, auch die Tatsache erwähnt, dass Safari tut tatsächlich wahr Plugins unterstützen, die Eingabe-Manager definitiv hacken nicht.

  

"WebKit Plug-In-Programmierung Themen"    http://developer.apple.com/documentation/InternetWeb/Conceptual/WebKit_PluginProgTopic/

Dies ist, wie die Dinge wie die Unterstützung für PDF und Flash-Inhalte umgesetzt werden. Werfen Sie einen Blick in Ihrem /Library/Internet Plug-ins/ Verzeichnis Beispiele.

Natürlich gibt es natürliche Grenzen, und Sie können nicht in der Lage zu erreichen, was Sie so weit wie UI Modifikation hoffen. Safari-Plug-Ins können all die Dinge nicht tun, die Input Manager Hacks können, aber sie werden überall in WebKit arbeiten, und in zukünftigen Versionen des OS. Hinweis: Safari ist 64-Bit standardmäßig auf Snow Leopard, so dass kein Input-Manager arbeitet. Ich vermisse Safari AdBlock schon ... :-( Ich würde es gerne als bonafide neu geschrieben, um zu sehen Plugin.

  

Gibt es eine Möglichkeit, dass Sie Schaltflächen oder Formulare an die Browser-Benutzeroberfläche hinzufügen würde es ermöglichen, da dies mit einem Input Manager oder Service-Menü nicht möglich ist?

Eigentlich mit einem Inputmanager, es würde möglich. SIMBL, die übliche Technik für Safari-Erweiterungen, ist einfach ein Wrapper um Inputmanagers - es steht für S Mart I nput M anager B undle L oader. Sie können Sachen in der Menüleiste hinzufügen, auf die Symbolleiste, Dialoge, überall und einfach durch Safari bestehenden Klassen erweitern.

Wie gesagt, Erweiterungen für Safari zu schreiben ist nicht nur nicht-trivial, wie æon sagte, sondern auch völlig nicht unterstützt. Es gibt einige relativ beliebt da draußen, wie Inquisitor (kürzlich von Yahoo! erworben) und Google Gears, aber zum größten Teil, es ist sehr anders als Firefox-Erweiterungen, die sind eine offiziell unterstützte, weit verbreitete Technik.

Sie wollen auch auf jeden Fall berücksichtigen, die speziellen Einschränkungen von Inputmanager auf Leopard .

Auch zu beachten - Apple hat festgestellt, dass Inputmanager als den Leopard stark eingeschränkt wird und wird nicht in 64-Bit-Anwendungen pro Apfel Leopard Release Notes . Dies ist besonders interessant die meisten Anwendungen unter Berücksichtigung 64-Bit in Snow Leopard sein wird (einschließlich vermutlich Safari). Apple versucht, auf jeden Fall Inputmanager als Vektor zu überschreiben und Erweiterung der Funktionalität auszulöschen. Safari braucht dringend einen Erweiterungsmechanismus.

Safari Extensions müssen nicht von Apple genehmigt werden. Sie müssen nur einen Entwickler cert (kostenlos), um sie zu machen, aber man kann sich um passieren und obwohl Apple die Erweiterung Gallery macht, müssen Sie es nicht verteilen durch dort. Wie Sie sehen können, gibt es bereits eine ganze Reihe von Erweiterungen, die Sie heute ausprobieren können. Das Zertifikat stellt sicher, nur, dass es nicht manipuliert wurde mit.

http://safariextensions.tumblr.com/

Wenn Sie an einer bestehenden Erweiterung aussehen wollen, um zu sehen, wie ihre getan, laden Sie es oder es von Ihrem Safari-Erweiterungen erhalten Ordner dann die .safariextz ändern dann offen .xar / extrahieren mit Pacifist den Code anzuzeigen, und wenn Sie möchten, fügen sie es zu dem Extension Builder App.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top