【问题标题】:UIApplication.shared.open , swift completion of a connection handlingUIApplication.shared.open ,快速完成一次连接处理
【发布时间】:2023-03-17 11:25:01
【问题描述】:

下面的代码是用来打开一个face time并建立一个连接,但是一旦调用结束了怎么做某个操作,“completionHandler”只是用来知道连接是否建立了

UIApplication.shared.open(url, options: [:],completionHandler:nil)

喜欢

UIApplication.shared.isClosed()

打开的网址是facetime网址

【问题讨论】:

  • 你想做什么?

标签: swift uiapplication openurl facetime


【解决方案1】:

如果您是第三方应用程序的开发人员,则不可能知道第三方应用程序的状态(在您的情况下为 facetime),您可能可以创建一个应用程序组来存储有关应用程序状态的一些信息,例如据我所知,FaceTime 没有公共 API。

在您的情况下,一种解决方法是观察您的应用何时再次处于前台并执行您的操作

您可以使用 AppDelegate 的方法:

或者您可以观察这些通知

这是您的视图控制器的外观示例

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        NotificationCenter.default.addObserver(self, selector: #selector(appDidBecomeActive),
                                               name: UIApplication.didBecomeActiveNotification,
                                               object: nil)
    }

    private func openFaceTime() {
        guard
            let faceTimeURL = URL(string: "facetime://user@example.com")
            else { return }
        UIApplication.shared.open(faceTimeURL, options: [:], completionHandler: nil)
    }

    @objc private func appDidBecomeActive() {
        // do your stuff
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-21
    • 2017-07-13
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多