我正在使用;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中返回应用程序的方法? –