Abrindo páginas web com Safari Services — Swift

Fabrício Guilhermo
Apple Developer Academy | Mackenzie
2 min readApr 14, 2020

Um ponto bem legal dentro de um aplicativo é o fato de conseguir acessar links na web através deles, como por exemplo quando você está navegando no Instagram e tem um link para alguma loja. Nota-se que nesse exemplo a sua navegação fica travada, ou seja, você não consegue acessar outra URL pelo link que você abriu.

Nesse artigo eu ensinarei a abrir uma página web pelo seu app e travar a navegação do usuário somente na página aberta, para que as chances dele voltar para a aplicação sejam maiores.

Para esse exemplo, eu me aproveitei de uma interface bem simples: apenas um text field para colocar a URL do site e um botão para abrir a página no Safari.

Abrindo o navegador com a URL

Para implementar essa parte mais simples irei utilizar um recurso muito conhecido que é o método open, ele é responsável por abrir um recurso em uma URL específica de forma assíncrona.

Com a implementação acima já é possível abrir uma página web no Safari. Todavia, essa implementação não é tão interessante, visto que a possibilidade do usuário começar a pesquisar outras coisas dentro do Safari é bem alta. Para resolver isso utilizaremos a biblioteca SafariServices.

Safari Services

Essa biblioteca proporciona a visualização e serviços web dentro do seu app.

Para adaptarmos nosso código precisamos importa-la e substituir o método open pela apresentação de um SFViewController(url:) .

E voilá! Simples e extremamente útil. Com isso você já consegue reproduzir o que grandes aplicativos como Instagram, Twitter, Facebook… fazem.

Deixo abaixo alguns links úteis, junto com eles a implementação de um projetinho no meu GitHub. Qualquer dica ou dúvida é só entrar em contato!

--

--

Fabrício Guilhermo
Apple Developer Academy | Mackenzie

Cientista da computação, desenvolvedor iOS e apaixonado por novas tendências tecnológicas.