Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
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
Passo a Passo
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.
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.
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.
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>
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.