gpt4 book ai didi

ios - FbLogin 使用 FBSDK 有时工作很慢

转载 作者:行者123 更新时间:2023-11-28 08:48:57 25 4
gpt4 key购买 nike

不要将其作为重复问题,我提出这个问题是因为答案没有帮助,集成对我来说效果很好,但页面加载速度非常慢。

加载登录屏幕确实需要很长时间。登录操作需要超过 8-50 秒或更长时间。

有时加载验证屏幕需要超过 10 秒。

以下代码用于 FBLoginButtonAction

func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!){

if(error != nil){

print(error.localizedDescription)

return

}

if result.isCancelled{

showAlert(title: "Login Cancelled", message: "You have cancelled login through Facebook")

}

if FBSDKAccessToken.currentAccessToken() != nil{

print("Logged in")

}

}

最佳答案

您可以使用 NSNotification 方法创建 FBlogin。只需按照以下步骤操作即可。

  1. 在 ViewDidload 中设置 FBDelegate 并为 NSNotification 设置观察者,

    self.btnFBLogin.delegate = self
    self.btnFBLogin.readPermissions = ["public_profile","email","user_friends"]

    FBSDKProfile.enableUpdatesOnAccessTokenChange(true)
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "getUserProfile:", name: FBSDKProfileDidChangeNotification, object: nil)

2.现在为 NSNotification 创建一个自定义函数,例如,

   func getUserProfile(notification : NSNotification)
{
let accessToken = FBSDKAccessToken.currentAccessToken()
if(accessToken != nil)
{

let req = FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"email,name"], tokenString: accessToken.tokenString, version: nil, HTTPMethod: "GET")
req.startWithCompletionHandler({ (connection, result, error : NSError!) -> Void in
if(error == nil)
{
print("result \(result)")
let userInfo = result as AnyObject
if let email = userInfo.valueForKey("email") as? NSString
{
print(email)
}
else
{
let loginManager = FBSDKLoginManager()
loginManager.logOut()
}
}
else
{
print("error \(error)")
}
})
}
}

注意:不要在 FB 委托(delegate)方法中编写任何逻辑。把它放在那里。

我认为这会对您有所帮助,因为它对我来说效果很好。 :)

关于ios - FbLogin 使用 FBSDK 有时工作很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34587159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com