Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Como Utilizar SFContentBlockerRequestHandler para Bloquear Conteúdo no Safari

O SFContentBlockerRequestHandler é uma classe do framework SafariServices da Apple que permite aos desenvolvedores criar extensões de bloqueio de conteúdo para o Safari. Essas extensões podem bloquear anúncios, rastreadores e outros tipos de conteúdo indesejado, proporcionando uma navegação mais limpa e segura.

Introdução

No ecossistema da Apple, o bloqueio de conteúdo no Safari é uma funcionalidade poderosa que pode ser implementada através do SFContentBlockerRequestHandler. Este artigo técnico irá guiá-lo através do processo de criação de uma extensão de bloqueio de conteúdo utilizando esta classe.

Pré-requisitos

  • Xcode instalado
  • Conhecimento básico de Swift e desenvolvimento de extensões para Safari

Passo a Passo

  1. Criar um Novo Projeto no Xcode

    Abra o Xcode e crie um novo projeto selecionando "App" como o template. Dê um nome ao seu projeto e configure as opções de acordo com suas preferências.

  2. Adicionar uma Extensão de Bloqueio de Conteúdo

    No menu do Xcode, vá em File > New > Target e selecione "Safari Content Blocker Extension". Dê um nome à sua extensão e adicione-a ao seu projeto.

  3. Configurar o SFContentBlockerRequestHandler

    A classe SFContentBlockerRequestHandler é onde você define as regras de bloqueio de conteúdo. No arquivo ContentBlockerRequestHandler.swift, você verá um método chamado beginRequest(with context: NSExtensionContext). É aqui que você irá carregar e retornar as regras de bloqueio.

    import SafariServices
    
    class ContentBlockerRequestHandler: NSObject, SFContentBlockerRequestHandling {
       func beginRequest(with context: NSExtensionContext) {
           let json = """
           [
               {
                   "trigger": {
                       "url-filter": ".*",
                       "resource-type": ["image"]
                   },
                   "action": {
                       "type": "block"
                   }
               }
           ]
           """
           let jsonData = json.data(using: .utf8)!
           let attachment = NSItemProvider(item: jsonData as NSSecureCoding, typeIdentifier: kUTTypeJSON as String)
           let item = NSExtensionItem()
           item.attachments = [attachment]
           context.completeRequest(returningItems: [item], completionHandler: nil)
       }
    }

    O código acima bloqueia todas as imagens carregadas em qualquer site. Você pode modificar as regras JSON para ajustar o que deseja bloquear.

  4. Atualizar o Info.plist

    No arquivo Info.plist da sua extensão, adicione a chave NSExtension com o seguinte conteúdo:

    <key>NSExtension</key>
    <dict>
       <key>NSExtensionAttributes</key>
       <dict>
           <key>SFSafariContentBlocker</key>
           <true/>
       </dict>
       <key>NSExtensionPointIdentifier</key>
       <string>com.apple.Safari.content-blocker</string>
    </dict>
  5. Testar a Extensão

    Selecione a extensão como o esquema ativo no Xcode e execute o projeto. O Safari será aberto e você poderá ativar a extensão nas preferências do Safari (Safari > Preferences > Extensions).

Conclusão

O SFContentBlockerRequestHandler é uma ferramenta poderosa para criar extensões de bloqueio de conteúdo no Safari. Com ele, você pode melhorar a experiência de navegação dos usuários, bloqueando anúncios indesejados e outros conteúdos perturbadores.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.