Domanda

Qual è il modo migliore per scrivere un'estensione Safari?Ho scritto un paio di estensioni XUL per Firefox e ora mi piacerebbe scriverne le versioni per Safari.Esiste un modo che ti consenta di aggiungere pulsanti o moduli all'interfaccia utente del browser, poiché ciò non è possibile con un gestore di input o un menu di servizio?

È stato utile?

Soluzione

Con il rilascio di Safari 5.0, Apple ha rilasciato un nuovo framework di estensione che gli sviluppatori possono utilizzare.Nelle funzionalità è simile al framework di estensione di Firefox che consente di personalizzare pulsanti, barre degli strumenti, menu contestuali, iniezioni utilizzando javascript e html 5

Maggiori informazioni a questo link

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

Altri suggerimenti

Lo sviluppo di plugin per Safari non è banale.L'interfaccia è scritta in Objective-C e la maggior parte non fa nemmeno parte di WebKit (quindi non è possibile vedere il sorgente), ma esiste un meccanismo per ispezionare e applicare patch alla gerarchia degli oggetti di un'applicazione in esecuzione.Richiede la comprensione di Cocoa e Objective-C, ma non inferiore.

Ecco una panoramica di alto livello che avevo nei miei segnalibri del processo http://livingcode.org/2006/tab-dumping-in-safari.Va oltre la creazione di plugin Safari utilizzando Python con codice funzionante (probabilmente obsoleto).Invece di Python puoi usare tutto ciò che ha collegamenti Objective-C.

Ci sono due parti principali:

Leggendo i link sopra ti darà la portata del progetto.

Le cose sono cambiate recentemente.Apple ora ha un'API di estensioni disponibile come parte di Safari 5.Puoi saperne di più su Il sito di Apple e da aderire al Programma per sviluppatori Safari.

Le estensioni di Safari devono essere firmate digitalmente, ma puoi ottenere il certificato di firma gratuitamente da Apple.Questo è il modo legittimo per inserire la tua estensione in Safari senza ricorrere ad hack che probabilmente si romperanno ogni volta che Apple aggiorna Safari.

Nessuno sembra aver nemmeno menzionato il fatto che Safari in realtà supporta i veri plugin, cosa che gli hack della gestione dell'input sicuramente non lo sono.

"Argomenti sulla programmazione dei plug-in WebKit" http://developer.apple.com/documentation/InternetWeb/Conceptual/WebKit_PluginProgTopic/

Ecco come vengono implementate cose come il supporto per i contenuti PDF e Flash.Dai una sbirciatina dentro il tuo /Library/Internet Plug-ins/ directory per vedere esempi.

Naturalmente, ci sono limitazioni intrinseche e potresti non essere in grado di realizzare ciò che speri per quanto riguarda la modifica dell'interfaccia utente.I plug-in di Safari non possono fare tutte le cose che possono fare gli hack di Input Manager, ma funzioneranno in WebKit ovunque e nelle versioni future del sistema operativo. Nota: Safari è a 64 bit per impostazione predefinita su Snow Leopard, quindi nessun Input Manager funziona.Mi manca Blocco annunci di Safari Già...:-( Mi piacerebbe vederlo riscritto come un plugin autentico.

Esiste un modo che ti consenta di aggiungere pulsanti o moduli all'interfaccia utente del browser, poiché ciò non è possibile con un gestore di input o un menu di servizio?

In realtà, con un InputManager, it volevo Essere possibile.SIMBL, la tecnica comune per le estensioni di Safari, è semplicemente un wrapper attorno a InputManagers: sta per Smercato IOnput Manager Bunde lcaricatore.Puoi aggiungere elementi alla barra dei menu, alla barra degli strumenti, alle finestre di dialogo, ovunque, semplicemente estendendo le classi esistenti di Safari.

Detto questo, scrivere estensioni per Safari non solo non è banale, come ha detto æon, ma è anche completamente non supportato.Ce ne sono alcune relativamente popolari là fuori, come Inquisitor (recentemente acquisito da Yahoo!) e Gears di Google, ma per la maggior parte è molto diverso dalle estensioni di Firefox, che sono una tecnica ampiamente utilizzata e supportata ufficialmente.

Sicuramente vuoi anche prendere in considerazione lo speciale limitazioni degli InputManagers su Leopard.

Inoltre, da notare: Apple ha dichiarato che gli InputManager sono fortemente limitati a partire da Leopard e non funzioneranno in applicazioni a 64 bit per Apple Note sulla versione di Leopard.Ciò è particolarmente interessante considerando che la maggior parte delle applicazioni saranno a 64 bit in Snow Leopard (incluso presumibilmente Safari).Apple sta sicuramente cercando di cancellare InputManager come vettore per sovrascrivere ed estendere le funzionalità.Safari ha un disperato bisogno di un meccanismo di estensione.

Le estensioni Safari NON devono essere approvate da Apple.Hai solo un certificato per sviluppatori (gratuito) per realizzarli, ma puoi passarli in giro e sebbene Apple stia creando la Extension Gallery, non devi distribuirla lì.Come puoi vedere, ci sono già alcune estensioni che puoi provare oggi.Il certificato garantisce solo che non sia stato manomesso.

http://safariextensions.tumblr.com/

Se vuoi guardare un'estensione esistente per vedere come è fatta, scaricala o prendila dalla cartella delle estensioni di Safari, quindi cambia .safariextz in .xar quindi apri/estrai con Pacifist per visualizzare il codice e se vuoi aggiungerlo a l'app per la creazione di estensioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top