0

我有一个允许用户打开 URL 的应用程序。这些可以通过 SafariView 处理,但如果应用程序已注册处理 URL,我想使用:

    if UIApplication.shared.canOpenURL(url) {
        UIApplication.shared.open(url, options: [:], completionHandler: nil)
    }

但是,这似乎回退到打开 Safari。对于这种情况,我想在我自己的应用程序中使用 SafariView。是否可以选择性地选择使用哪些外部应用程序?

4

1 回答 1

0

“universalLinksOnly”选项可以与检查完成处理程序是否为真一起使用。

    if UIApplication.shared.canOpenURL(url) {
        UIApplication.shared.open(url, options: [.universalLinksOnly: true], completionHandler: { wasHandled in
            if !wasHandled {
                handleExternalUrlWithSafariView(url)
            }
        })
    } else {
        handleExternalUrlWithSafariView(url)
    }

其中“handleExternalUrlWithSafariView”是我定义的一个函数,用于打开具有给定 URL 的 SafariView。

于 2020-12-13T04:30:01.297 回答