首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Safari中按下完成后执行代码?

如何在Safari中按下完成后执行代码?
EN

Stack Overflow用户
提问于 2021-11-04 20:08:19
回答 1查看 23关注 0票数 0

我在应用程序中启动Safari,并希望在按下完成后执行代码。但是func safariViewControllerDidFinish不会使用这个函数。

代码语言:javascript
复制
import SafariServices

class QRScannerController: UIViewController, WKNavigationDelegate, SFSafariViewControllerDelegate {

let vc = SFSafariViewController (url: URL(string: String(urls))!)
            present(vc, animated: true, completion: nil)
            vc.delegate = self
            
            func safariViewControllerDidFinish(_ controller: SFSafariViewController) {
                controller.dismiss(animated: true) {
                 // do my code
                }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-04 21:37:38

你不需要关闭safariViewControllerDidFinish内部的控制器,当点击done时它已经被关闭了。

代码语言:javascript
复制
import SafariServices

class QRScannerController: UIViewController, SFSafariViewControllerDelegate {
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        let vc = SFSafariViewController (url: URL(string: "https://www.google.com")!)
        self.present(vc, animated: true, completion: nil)
        vc.delegate = self
    }

    func safariViewControllerDidFinish(_ controller: SFSafariViewController) {
        // do your code
        print("done!")
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69845249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档