我正在使用;facebook swift sdk 0.2.0 swift 3.1登錄頁面保持打開狀態
- 迅速SDK 0.2.0和
- SWIFT 3.1
所以,在我的viewcontroller
(initial.swift
)我
import UIKit
import FacebookCore
import FacebookLogin
...
override func viewDidLoad() {
if let accessToken = AccessToken.current {
print("User is already logged in")
...
}
else {
let loginButton = LoginButton(readPermissions: [ .publicProfile, .email ])
loginButton.center = view.center
//AFTER ACTION
let loginManager = LoginManager()
loginManager.logIn([ .publicProfile, .email ], viewController: self)
{ loginResult in
switch loginResult {
case .failed(let error):
print(error)
break
case .cancelled:
print("User cancelled login.")
case .success(let grantedPermissions, let declinedPermissions, let accessToken):
print("Logged in!")
}
}
}
登錄按鈕顯示爲預期,但允許後頁面,白頁保持打開,當我點擊「完成」手動應用程序認爲用戶取消登錄。
也有類似的線程暗示失蹤的應用程序delegate
函數(34734885),但我想這是一個解決方案FBSDKCoreKit
和FBSDKLoginKit
,不適用於新的facebook swift sdk。我猜也是。任何建議?
編輯
我也試過這個;
let myLoginButton = UIButton()
myLoginButton.backgroundColor = UIColor.darkGray
myLoginButton.frame = CGRect(0, 0, 180, 40);
myLoginButton.center = view.center;
myLoginButton.setTitle("My Login Button", for: UIControlState.normal)
// Add the button to the view
view.addSubview(myLoginButton)
// Handle clicks on the button
myLoginButton.addTarget(self, action: #selector(self.FBloginButtonClicked), for: UIControlEvents.touchUpInside)
@objc func FBloginButtonClicked() {
//AFTER ACTION
let loginManager = LoginManager()
loginManager.logIn([ .publicProfile, .email ], viewController: self)
{ loginResult in
switch loginResult {
case .failed(let error):
print(error)
break
case .cancelled:
print("User cancelled login.")
case .success(let grantedPermissions, let declinedPermissions, let accessToken):
print("Logged in!")
}
}
}
您是否編寫了在AppDelegate中返回應用程序的方法? –