UIApplication.shared.open,迅速完成一个连接处理。

问题描述 投票:0回答:1

下面的代码是用来打开面时和建立连接的,但是一旦调用结束,如何进行某项操作,"completionHandler "只是用来知道连接是否建立起来的

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

喜欢

UIApplication.shared.isClosed()

打开的网址是faceetime网址

swift uiapplication openurl facetime
1个回答
0
投票

如果你是第三方应用的开发者,是不可能知道该应用的状态的(在你的情况下是faceetime),你也许可以创建一个应用组来存储一些关于应用状态的信息,而且,据我所知,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://[email protected]")
            else { return }
        UIApplication.shared.open(faceTimeURL, options: [:], completionHandler: nil)
    }

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

}
© www.soinside.com 2019 - 2024. All rights reserved.