2017-02-01 6 views
0

Ich benutze einen ersten Bildschirm (initial.html) und ich will es als Splashscreen und dann den inappbrowser aufrufen.

Aber inappbrowser öffnet nicht. Wenn ich es direkt platziere, funktioniert es. Kein Fehler kommt auch. Die erforderliche Funktionalität besteht darin, dass eine Begrüßungsbildschirmansicht in inappbrowser umgeleitet wird, der Benutzer sich anmeldet und bei erfolgreicher Anmeldung zur Ansicht weitergeleitet wird (einzelne Teile funktionieren, aber wenn ich sie in eine TimeOut-Funktion lege, funktioniert sie nicht) .

Gibt es einen besseren Weg, um diese Funktionalität zu erreichen. richtig

controller.js

.controller('LoginCtrl', function($scope,$timeout,$rootScope,LoginService, $ionicPopup, $state,$location,$ionicPopup) { 
    $timeout(function(){      
    LoginService.loginUser().success(function(data) { 
     console.log(data); 
     $location.path('app/playlists'); 
    }).error(function(data) { 
     var alertPopup = $ionicPopup.alert({ 
      title: 'Login failed!', 
      template: 'Please check your credentials!' 
     }); 
    });  
}, 3000); 
}) 

services.js

angular.module('starter.services', []) 
.service('LoginService', function($q,$rootScope,$cordovaInAppBrowser,$http,$state,jwtHelper,$location) { 
return { 
    loginUser: function() { 
     var deferred = $q.defer(); 
     var promise = deferred.promise; 
     console.log("Hi Service"); // IT IS REACHING HERE THEN STUCK 
     $cordovaInAppBrowser.open(URL, '_self',options).then(function(event){  
    console.log(event); 
    // success 
    }) 

    .catch(function(event) { 
    console.log(event); 
    // error 
    }); 

$rootScope.$on('$cordovaInAppBrowser:loadstop', function(e, event){ 
if(userValid){ 
deferred.resolve(username); } 
else{ 
deferred.reject('Auth Failed'); 
} 
}); 

//promise created outside 
promise.success = function(fn) { 
      promise.then(fn); 
      return promise; 
     } 
     promise.error = function(fn) { 
      promise.then(null, fn); 
      return promise; 
     } 
     return promise; 
    } 
}); 
+1

Ehrlich gesagt habe ich nicht gelesen 'setTimeout'. Versuchen Sie '$ timeout' und kommen Sie dann zurück. –

+0

Stehen Sie immer noch vor dem Problem oder ist es gelöst? –

+0

@RaviShankar Nein $ Timeout funktioniert nicht –

Antwort

0

ich entfernt und neu installiert die inappbrowser Plugin und es funktionierte. Ich entschuldige mich für die Verwirrung

Verwandte Themen