2016-10-28 3 views
0

Je suis actuellement en train de construire une application ionique destinée à être un wrapper pour une application web externe. Ce que je veux faire est de pouvoir suivre l'URL redirigée lorsque l'utilisateur change de position dans l'application Web externe.URL de suivi d'un site externe lancé dans le plugin cordova-inappbrowser

Dans mon contrôleur principal j'ai le code suivant. Lorsque la page se charge, l'écouteur d'événement ne se déclenche pas ou lorsque l'utilisateur change d'emplacement sur le site externe. J'ai essayé de pointer la cible sur _system et _blank, ce qui ne fait aucune différence pour moi.

Quelqu'un peut-il m'aider?

Merci d'avance.

Répondre

0

D'après mon expérience, tous les événements ne se déclenchent pas toujours sur toutes les plateformes. Essayez de vous abonner à tous les événements et imprimez quelques informations de débogage. Ensuite, testez sur différents appareils (iOS, Android) et voyez quels événements sont déclenchés.

$rootScope.$on('$cordovaInAppBrowser:loadstart', function(e, event){console.log('start')}; 
$rootScope.$on('$cordovaInAppBrowser:loadstop', function(e, event){console.log('stop')}); 
$rootScope.$on('$cordovaInAppBrowser:loaderror', function(e, event){console.log('err')}); 
$rootScope.$on('$cordovaInAppBrowser:exit', function(e, event){console.log('exit')}); 

BTW: J'utilise ngCordova ici ...

+0

Merci pour la réponse, mais je ne reçois aucun des événements à déclencher lors de l'utilisation du code ci-dessus. –

+0

étrange. Je l'utilise sans problème. Êtes-vous sur le plus récent ionique, cordova et plugin? Testez-vous dans un navigateur ou un appareil? 'loadstart' ne se déclenche pas dans le navigateur. Essayez de définir 'location = true' Je pense que j'ai vu quelques bizarreries avec cela provoquant des événements à ne pas tirer à un moment donné. – iCediCe

+0

Un test rapide me montre que tous les événements se déclenchent sur mon experia xa sony (quel que soit l'emplacement des paramètres), im sur ionic 1.3.2 et le plus récent plugin inBrowser. – iCediCe

0

très étrange .. tout ce que je faisais était ionique de mise à jour, exécutez « test de démarrage ionique blanc » ajouter le plugin modifier app.js à ce

angular.module('starter', ['ionic']) 
     .run(function ($ionicPlatform) { 
     $ionicPlatform.ready(function() { 
      if (window.cordova && window.cordova.plugins.Keyboard) { 
      var inAppBrowserRef; 
      var target = "_self"; 
      var options = "location=no"; 

      inAppBrowserRef = cordova.InAppBrowser.open('https://onesignal.com/', target, options); 
      inAppBrowserRef.addEventListener('loadstart', function() { console.log('start') }); 
      inAppBrowserRef.addEventListener('loadstop', function() { console.log('stop') }); 
      inAppBrowserRef.addEventListener('loaderror', function() { console.log('err') }); 
      } 
     }); 
     }) 

puis d'exécuter 'ionic run android' et tous les événements se déroulent perf.

+0

Je commence à me demander si le problème n'est pas le fait que ce que je ' m wrapping in ionic est en fait une autre application web et peut-être que lorsque la navigation se produit là-bas, elle n'émet pas les mêmes événements que l'ancienne application web a été créée pour ios en utilisant swift et xcode. –