我正在使用;
- swift 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!")
}
}
}
最佳答案
据我了解,您根据 facebook guide? 做了所有事情
包括这部分:
// Handle clicks on the button
myLoginButton.addTarget(self, action: @selector(self.loginButtonClicked) forControlEvents: .TouchUpInside)
和
// Once the button is clicked, show the login dialog
@objc func loginButtonClicked() {
let loginManager = LoginManager()
...
}
关于ios - facebook swift sdk 0.2.0 swift 3.1 登录页面保持打开状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43831728/