2017-02-01 94 views
0

我正在使用初始屏幕(initial.html),我希望它充當splashscreen,然後調用inappbrowser。

但是inappbrowser沒有打開。如果我直接放置它就可以。 也沒有錯誤。所需的功能是將閃屏視圖重定向到inappbrowser,用戶將登錄併成功登錄後將被重定向到視圖(單個部件正在工作,但是當我將其放入TimeOut功能中時它不起作用) 。

有沒有更好的方法來實現這個功能。

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

老實說,我沒有讀過去'setTimeout'。試試'$ timeout'然後回來。 –

+0

你仍然面臨問題還是解決? –

+0

@RaviShankar沒有$超時沒有工作 –

回答

0

我刪除並重新安裝inappbrowser插件,它工作正常。我很抱歉的混淆