2016-04-09 23 views
0

Bunu yapmak için çalışıyorum, böylece uygulama kapansa bile kullanıcı oturum açabilir. İşleyişimin doğru şekilde çalışmasını sağlayamıyorum. Kullanıcının oturum açtığı bir işlev var ve bu tuşa basıldığında çalışır, ancak yalnızca kullanıcı ilk kez oturum açtıktan ve sonra kapattıktan sonra işlevi yüklemek için doğru yerde işlevi göremiyorum. app ama çıkmıyor.Kullanıcıya ilk kez giriş yaptıktan sonra devam ediyor Backendless

self.backendless.userService.setStayLoggedIn(true) 

"backendless.userService.login" önce ziyade giriş tepki işleyicisinde:

ViewControler

import UIKit 
import FBSDKCoreKit 
import FBSDKLoginKit 

class ViewController: UIViewController { 


let APP_ID = "i have it" 
let SECRET_KEY = "i have it" 
let VERSION_NUM = "v1" 

var backendless = Backendless.sharedInstance() 




@IBOutlet weak var userEmail: UITextField! 


@IBOutlet weak var password: UITextField! 


func displayAlert(title: String, message: String) { 

    let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert) 
    alert.addAction((UIAlertAction(title: "OK", style: .Default, handler: { (action) -> Void in 

     self.dismissViewControllerAnimated(true, completion: nil) 

    }))) 

    self.presentViewController(alert, animated: true, completion: nil) 


} 







@IBAction func signUp(sender: AnyObject) { 

    let user = BackendlessUser() 
    user.email = self.userEmail.text 
    user.password = self.password.text 


    if userEmail.text == "" || password.text == ""{ 

     displayAlert("Error in form", message: "Please enter a email adress and password") 

    } else{ 

    backendless.userService.registering(user, 
             response: { (registeredUser : BackendlessUser!) ->() in 
              print("User has been registered (ASYNC): \(registeredUser)") 
     }, 
             error: { (fault : Fault!) ->() in 
              print("Server reported an error: \(fault)") 
     } 
    ) 
    } 

} 




@IBAction func logIn(sender: AnyObject) { 


    if userEmail.text == "" || password.text == ""{ 

     displayAlert("Error in form", message: "Please enter a email adress and password") 

    }else{ 





loginUserAsync() 


     let appDelegate = UIApplication.sharedApplication().delegate! as! AppDelegate 

     var initialViewController = self.storyboard!.instantiateViewControllerWithIdentifier("myTabbarControllerID") as! UIViewController 
     appDelegate.window?.rootViewController = initialViewController 
     appDelegate.window?.makeKeyAndVisible() 



    } 
} 


func loginUserAsync() { 

    let user = BackendlessUser() 
    user.email = self.userEmail.text 
    user.password = self.password.text 

    backendless.userService.login(

     self.userEmail.text, password:self.password.text, 

     response: { (user : BackendlessUser!) ->() in 

      self.backendless.userService.setPersistentUser() 

      self.backendless.userService.setStayLoggedIn(true) 

      self.backendless.userService.getPersistentUser() 

      let user = self.backendless.userService.currentUser 

      if (user != nil) { 

       // get user's email (i.e. mandatory/predefined property) 

       let userEmail = user.email 
       let password = user.password 



       let appDelegate = UIApplication.sharedApplication().delegate! as! AppDelegate 

       var initialViewController = self.storyboard!.instantiateViewControllerWithIdentifier("myTabbarControllerID") as! UIViewController 
       appDelegate.window?.rootViewController = initialViewController 
       appDelegate.window?.makeKeyAndVisible() 
      } 

      else if (user == nil) { 

       print("User hasn't been logged") 

      } 

     }, 

     error: { (fault : Fault!) ->() in 

      print("Server reported an error: \(fault)") 

     } 

    ) 

} 

func validUserTokenAsync() { 
    backendless.userService.isValidUserToken(
     { (var result : AnyObject!) ->() in 
      print("isValidUserToken (ASYNC): \(result.boolValue)") 
     }, 
     error: { (var fault : Fault!) ->() in 
      print("Server reported an error (ASYNC): \(fault)") 
     } 
    ) 
} 


override func viewDidLoad() { 
    super.viewDidLoad() 



    let loginButton = FBSDKLoginButton() 
    loginButton.center = self.view.center 
    self.view.addSubview(loginButton) 



} 


override func viewDidAppear(animated: Bool) { 
    loginUserAsync() 
} 


override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 









} 
+0

Kullanıcı varsayılan değerlerinde bir simge veya bir boole depolayabilirsiniz. Ardından, kişi uygulamaya geri döndüğünde bu kayıtlı değere sahip olup olmadığınızı görün ve giriş işlemini atlayın. Bu senin işine yarar mıydı? – ryantxr

+0

Bunu nasıl yapacağından emin değilim. Backendless için çok yeni. Bana bir kod örneği verebilir misin? –

+0

Önceki çözümüm aniden çalışmayı durdurdu :( –

cevap

0

aşağıdaki işlevi çağırmak için emin olun: İşte benim bakış denetleyicisi kodudur .