Existe uma maneira de verificar se a conexão com a Internet está disponível usando Swift?
Eu sei que existem muitas bibliotecas de terceiros para fazer isso, mas todas são escritas em Objective-C. Estou procurando uma alternativa Swift.
ios
swift
network-connection
Isuru
fonte
fonte
Respostas:
Conforme mencionado nos comentários, embora seja possível usar bibliotecas Objective-C em Swift, eu queria uma solução Swift mais pura. A classe existente de Reachability da Apple e outras bibliotecas de terceiros pareciam ser muito complicadas para eu traduzir para o Swift. Pesquisei mais no Google e encontrei este artigo que mostra um método simples para verificar a disponibilidade da rede. Decidi traduzir isso para o Swift. Tive muitos problemas, mas graças a Martin R do StackOverflow, consegui resolvê-los e, finalmente, obter uma solução viável em Swift. Aqui está o código.
Para Swift> 3.0
Isso funciona para conexões 3G e WiFi. Eu também fiz o upload para meu GitHub com um exemplo funcional.
fonte
isConnectedToNetwork
retorna verdadeiro, mas não consigo ligar para o meu serviço webEu te dou uma maneira melhor ...
Você deve criar uma classe com este código
E então você pode verificar a conexão com a Internet em qualquer lugar em seu projeto usando este código:
Muito fácil!
* Esta forma é baseada na resposta de Vikram Pote!
fonte
Para Swift 3.1 (iOS 10.1)
Se você quiser fazer a distinção entre o tipo de rede (ou seja, WiFi ou WWAN):
Você pode usar:
Aqui está toda a classe de acessibilidade que diferencia os tipos de rede:
fonte
Como sendSynchronousRequest está obsoleto, tentei fazer isso, mas 'return Status' foi chamado antes de a resposta terminar.
Porém, esta resposta funciona bem, verifique a conexão com a Internet com o Swift
Aqui está o que eu tentei de qualquer maneira:
fonte
SWIFT 3: verifica a existência de wi - fi e conexão à Internet :
USO:
fonte
public func isConnectedToNetwork() {...}
deve ser alterado paraclass func isConnectedToNetwork{...}
para o seu caso de uso.Você também pode usar a resposta abaixo.
fonte
SWIFT 3: Verifique a conexão 3G e Wi-Fi
fonte
Para Swift 5:
fonte
Swift 4
fonte