2010-11-30 11 views
0

Ich muss herausfinden, wie man Plug-ins speziell für Safari auf Mac installiert. Wenn ich die .plugin Dateien in den Ordner Internet Plug-ins kopiere, wird es auch von Firefox und Google Chrome erkannt, wenn sie ausgeführt werden.Wie kann UserAgent in einem NPAPI-Plug-in erkannt werden, bevor es vom Browser registriert wird?

Um dies zu verhindern, habe ich den API-Aufruf NP_UserAgent verwendet, um den Benutzeragenten zu ermitteln, und mich beendet, wenn es nicht Safari war. Die Plug-ins werden jedoch weiterhin von Google Chrome und Firefox registriert. Gibt es das Gleiche, ohne dass der Browser das Plug-In registriert?

Antwort

2

Wenn Sie ein NPAPI-Plugin schreiben, sollte es in jedem Browser funktionieren. Können Sie erklären, warum Sie verhindern möchten, dass andere Browser das Plugin verwenden? Abhängig vom zugrunde liegenden Bedarf kann es einen besseren Ansatz geben. (Wenn dies beispielsweise in Verbindung mit einer Safari-Erweiterung funktionieren soll, müssen Sie nur einen MIME-Typ verwenden, den nur Ihr Plug-in verwendet, und dann ist es egal, ob andere Browser das Plug-in erkennen, weil dies der Fall ist wird niemals tatsächlich instanziiert).

Möchten Sie auf nur Safari, oder einen Browser mit Apple WebKit-Framework? Wenn Letzteres, könnten Sie ein WebKit plugin anstelle eines NPAPI-Plugins schreiben.

+0

Dank @smorgan ... Think ist, wie ich voran gehen werde. Ja, Ihre Vermutung ist absolut richtig ... Die Plug-Ins funktionieren in Verbindung mit einer Safari-Erweiterung. Es ist eigentlich eine existierende Erweiterung für Firefox und Chrome und ich versuche es in Safari zu portieren. Ja, wenn Sie es mögen :) http://www.cloudmagic.com/ – themoondothshine

0

Eine der möglichen Lösungen ist Browser mit JavaScript zu erkennen und <object> Tag in HTML-Seite nur einfügen, wenn es Safari ist. Es verhindert natürlich nicht, dass das Plugin registriert wird.

Eine andere Möglichkeit ist das WebKit Plugin für Safari zu schreiben. Es ist sogar einfach zu implementieren als NPAPI.