5
respostas

Checar a conexão com a internet no App Cordova

Tenho um app todo feito em HTML5, Java, PHP , MySQL e etc. Toda vez que você abre o app ele se conecta a internet e abre o conteudo de uma pagina Web. Como um Iframe responsivo visto que a maior parte da aplicação esta em nuvem.

Preciso criar uma especie de alerta para que quando o usuario entre desconectado da internet ele abra uma pagina do app como sei la erro.html e caso ele tenha internet ele abra index.html.

Não sei nem por onde começar kk

5 respostas

Oi Gabriel, minha sugestão é: quando a página abrir, faz uma requisição ajax para algum endereço e se der erro de timeout/falta conectividade já exibe a sua informação.

mas como eu começaria isso? tem algum curso da alura para recomendar?

Oi você pode dar uma olhada qui => https://developer.mozilla.org/pt-BR/docs/Web/API/Fetch_API é a documentação da fetch api, para fazer requisições a partir do seu navegador. Outra coisa é fazer os cursos de javascript da alura com o super mestre Flavio :).

Você precisa usar o evento deviceready para inserir listeners que verifiquem se existe a conexão ou não. Então antes de abrir uma página ou tentar conexão com um recurso externo você verifica se a conexão existe.

Aqui tem um exemplo de como fazer isso, no meu caso eu usei Jquery Mobile, mas, o código pode ser adaptado facilmente.

http://www.dbins.com.br/dica/verificar-a-conexao-com-o-phonegap

Oi, só para encerrar o topico eu resolvi o problema da seguinte forma . Criei um if em Java que caso a pessoa esteja sem internet o index.html manda a pessoa para uma pagina chamadaa seminternet.html. Pois a minha aplicação feita no cordova precisa de acesso ao MySql e sem internet isso é impossivel. Vou deixar só para caso alguem queira o codigo.

if(navigator.onLine){
        } else {
        window.location = "seminternet.html";
        };
        onDeviceReady: function() {             
        window.FirebasePlugin.getToken(function(token) {             
              alert(token);             
           }, function(error) {                
                console.error(error);           
               });                
           this.receivedEvent('deviceready');   
     },