gpt4 book ai didi

ios - FBSDKLoginManager() 以编程方式关闭 .web View

转载 作者:行者123 更新时间:2023-11-28 16:09:54 33 4
gpt4 key购买 nike

我有一个 FBSDK 登录 webview,我可以使用应用程序的按钮关闭它并完成社交分享任务。

我正在尝试实现一个应用程序范围的功能,如果在三分钟后没有检测到触摸,当弹出回到主视图 Controller 时,FB 登录 View 仍然可见,它将删除它。

如何在没有用户交互的情况下以编程方式关闭它。

var loginView:FBSDKLoginManager = FBSDKLoginManager()

loginView.loginBehavior = FBSDKLoginBehavior.web

loginView.logIn(withPublishPermissions: ["publish_actions"]){ (loginResult: FBSDKLoginManagerLoginResult?, error: Error?) in

if error != nil
...

如果没有用户取消此登录过程,我如何以编程方式关闭 FBSDKLoginBehavior.web。

最佳答案

我找不到如何获取模态窗口引用。但是,您可以使用 FBSDKLoginBehavior.browser 并关闭它:

在此示例中,Facebook 登录 View 将在 10 秒后关闭:

ViewController.swift

import UIKit
import FBSDKLoginKit

class ViewController: UIViewController, UIPopoverPresentationControllerDelegate {

func loginButtonTouchUpInside(_ sender: AnyObject) {
loginManager.logIn(withReadPermissions: self.readPermissions, from: self) { (result, error) in
NSLog("login window dismissed")
}
DispatchQueue.global(qos: .utility).async {
sleep(10)
DispatchQueue.main.async {
if let presentedViewController = self.presentedViewController {
presentedViewController.dismiss(animated: true, completion: nil)
}
}
}
}

var loginManager = FBSDKLoginManager()
let readPermissions = ["public_profile", "email", "user_friends","user_birthday"]

override func viewDidLoad() {
loginManager.loginBehavior = FBSDKLoginBehavior.browser
let button = UIButton(frame: CGRect(x: 50, y: 50, width: 100, height: 20))
button.setTitleColor(UIColor.blue, for: .normal)
button.setTitle("Login", for: .normal)
button.addTarget(self, action: #selector(ViewController.loginButtonTouchUpInside(_:)), for: .touchUpInside)
view.addSubview(button)
}
}

关于ios - FBSDKLoginManager() 以编程方式关闭 .web View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39716624/

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