Pergunta

Qual é a melhor maneira de escrever uma extensão do Safari?Escrevi algumas extensões XUL para Firefox e agora gostaria de escrever versões delas para Safari.Existe uma maneira que permita adicionar botões ou formulários à interface do navegador, já que isso não é possível com um gerenciador de entrada ou menu de serviço?

Foi útil?

Solução

Com o lançamento do Safari 5.0, a Apple lançou uma nova estrutura de extensão para uso dos desenvolvedores.Em recursos é semelhante ao framework de extensão do Firefox permitindo customizar botões, barras de ferramentas, menus de contexto, injeções usando javascript e html 5

Mais neste link

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

Outras dicas

O desenvolvimento de plugins para Safari não é trivial.A interface é escrita em Objective-C, e a maior parte dela nem faz parte do WebKit (então você não pode ver a fonte), mas há máquinas para inspecionar e corrigir a hierarquia de objetos de um aplicativo em execução.Requer compreensão de Cocoa e Objective-C, mas não inferior.

Aqui está uma visão geral de alto nível que tive em meus favoritos do processo http://livingcode.org/2006/tab-dumping-in-safari.Ele aborda a criação de plug-ins do Safari usando Python com código funcional (provavelmente desatualizado).Em vez de Python você pode usar qualquer coisa que tenha ligações Objective-C.

Existem duas partes principais:

A leitura dos links acima lhe dará o escopo do projeto.

As coisas mudaram recentemente.A Apple agora tem uma API de extensões disponível como parte do Safari 5.Você pode descobrir mais em Site da Apple e por ingressando no Programa para Desenvolvedores Safari.

As extensões do Safari precisam ser assinadas digitalmente, mas você pode obter o certificado de assinatura gratuitamente da Apple.Esta é a maneira legítima de colocar sua extensão no Safari sem recorrer a hacks que provavelmente serão interrompidos sempre que a Apple atualizar o Safari.

Ninguém parece ter mencionado o fato de que o Safari realmente suporta plug-ins verdadeiros, o que os hacks do gerenciador de entrada definitivamente não são.

"Tópicos de programação do plug-in WebKit" http://developer.apple.com/documentation/InternetWeb/Conceptual/WebKit_PluginProgTopic/

É assim que coisas como suporte para conteúdo PDF e Flash são implementadas.Dê uma olhada dentro do seu /Library/Internet Plug-ins/ diretório para ver exemplos.

É claro que existem limitações inerentes e talvez você não consiga realizar o que espera no que diz respeito à modificação da IU.Os plug-ins do Safari não podem fazer todas as coisas que os hacks do Input Manager podem, mas funcionarão no WebKit em qualquer lugar e em versões futuras do sistema operacional. Observação: O Safari é de 64 bits por padrão no Snow Leopard, portanto nenhum gerenciador de entrada funciona.estou faltando AdBlock Safari já...:-( Eu adoraria vê-lo reescrito como um plugin genuíno.

Existe uma maneira que permita adicionar botões ou formulários à interface do navegador, já que isso não é possível com um gerenciador de entrada ou menu de serviço?

Na verdade, com um InputManager, seria seja possível.SIMBL, a técnica comum para extensões Safari, é simplesmente um wrapper em torno de InputManagers - significa Smercado EUentrada Mgerente Bdesfazer eucarregador.Você pode adicionar itens à barra de menus, à barra de ferramentas, às caixas de diálogo, em qualquer lugar, simplesmente estendendo as classes existentes do Safari.

Dito isto, escrever extensões para o Safari não é apenas trivial, como disse æon, mas também completamente sem suporte.Existem alguns relativamente populares por aí, como o Inquisitor (recentemente adquirido pelo Yahoo!) e o Gears do Google, mas na maior parte, é muito diferente das extensões do Firefox, que são uma técnica amplamente utilizada e com suporte oficial.

Você também definitivamente quer levar em consideração o especial limitações dos InputManagers no Leopard.

Além disso, observe - a Apple declarou que os InputManagers estão sendo severamente limitados a partir do Leopard e não serão executados em aplicativos de 64 bits por Apple Notas de versão do Leopard.Isso é especialmente interessante considerando que a maioria dos aplicativos será de 64 bits no Snow Leopard (incluindo presumivelmente o Safari).A Apple está definitivamente tentando destruir o InputManager como um vetor para substituir e estender a funcionalidade.O Safari precisa desesperadamente de um mecanismo de extensão.

As extensões do Safari NÃO precisam ser aprovadas pela Apple.Você só tem um certificado de desenvolvedor (gratuito) para criá-los, mas pode distribuí-los e, embora a Apple esteja fazendo a Galeria de Extensões, você não precisa distribuí-la por lá.Como você pode ver, já existem algumas extensões que você pode experimentar hoje.O certificado apenas garante que não foi adulterado.

http://safariextensions.tumblr.com/

Se você quiser ver uma extensão existente para ver como é feita, baixe-a ou obtenha-a na pasta de extensões do Safari, altere .safariextz para .xar e abra/extraia com o Pacifist para visualizar o código e, se desejar, adicione-o a o aplicativo Extension Builder.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top