2017-08-14 2 views
0

Je travaille dans un projet cordova et je suis très nouveau à cordova.Comment charger l'URL dans InAppbrowser dans les 20 secondes?

En ce que j'ai une exigence est comme si j'appelle une URL dans le InAppbrowser. Si la connexion réseau est très lente (c'est-à-dire 20 Kbps/50 Kbits/s), je dois afficher une alerte indiquant que le réseau est lent. Ici, j'utilise la fonction setTimeout et aussi je vérifie la connexion Internet. Mais mon problème est que si la connexion internet est là, la fonction setTimeout appelle aussi après 20 secondes.

Je veux vérifier seulement si la connexion Internet est lente ou sinon mon charge avec l'url ma fonction setTimeout ne devrait pas appeler. Pourrait anypne s'il vous plaît aider à résoudre ce problème. Mon code est comme ça .....

if(cid == null){ 
       curl = “some url”; 

      //ref = cordova.InAppBrowser.open(curl, '_blank', 'location=no,hardwareback=yes'); 
         ref = cordova.InAppBrowser.open(curl, '_blank', 'location=no,hardwareback=yes'); 
setTimeout(function(){ 
    //alert("Hello"); 

    if(startEndedVar == true) 
    { 
    ref = cordova.InAppBrowser.open(curl, '_blank', 'location=no,hardwareback=yes'); 
     } 
    else{ 
     ref = cordova.InAppBrowser.open("settings.html", '_blank', 'location=no,hardwareback=yes'); 

      } 
    }, 3000); 

    ref.addEventListener('loadstart', function() { 

              //alert('laoding started'); 

              }); 

     ref.addEventListener('loadstop', function() { 

     startEndedVar = true; 
     //alert('laoding ended'); 
    }); 
    ref.addEventListener('exit', function(event){ 
       screen.orientation.lock('portrait').then(function(obj) { 
       console.log(obj); 
      }, function(obj) { 
       console.log(obj); 
      }); 
      }); 

      } 

Merci à l'avance

+0

Pourriez-vous simplement utiliser les informations de réseau cordova-plugin et détecter les connexions 2g? – MStoner

Répondre

0

Il est parce que vous avez le même ordre deux fois: ref = cordova.InAppBrowser.open(curl, '_blank', 'location=no,hardwareback=yes');. Merci à la if et else vous allez ouvrir une fenêtre dans chaque mode, aussi votre TimeOut est appelé aufer 30s et pas après 20s.

Je ne suis pas sûr s'il y a des problèmes plus profonds dans la logique.