簡體   English   中英

$ timeout()不調用inappbrowser [Ionic]

[英]$timeout() not calling inappbrowser [Ionic]

我正在使用初始屏幕(initial.html),我希望它充當啟動屏幕,然后調用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;
    }
});

我刪除並重新安裝了inappbrowser插件,它可以正常工作。 對此我深表歉意

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM