如何使用 UIApplication.shared.open 在 iOS 上选择性地打开其他应用程序
Posted
技术标签:
【中文标题】如何使用 UIApplication.shared.open 在 iOS 上选择性地打开其他应用程序【英文标题】:How to selectively open other apps on iOS using UIApplication.shared.open 【发布时间】:2020-12-13 04:05:30 【问题描述】:我有一个允许用户打开 URL 的应用程序。这些可以通过 SafariView 处理,但如果应用程序已注册处理 URL,我想使用:
if UIApplication.shared.canOpenURL(url)
UIApplication.shared.open(url, options: [:], completionHandler: nil)
但是,这似乎是在打开 Safari 时出现的。对于这种情况,我想在我自己的应用程序中使用 SafariView。是否可以选择性地选择使用哪些外部应用程序?
【问题讨论】:
【参考方案1】:“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。
【讨论】:
以上是关于如何使用 UIApplication.shared.open 在 iOS 上选择性地打开其他应用程序的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 扩展和应用程序之间使用 UIApplication.shared 共享 CocoaPod
`UIApplication.shared.canOpenURL(:)` 方法在 iOS 11.4(仅限 iPad 设备)上不起作用?
有没有办法为`UIApplication.shared`添加`if(iOSApplicationExtension)`条件
Swift/iOS13 - UIApplication.shared.delegate.window?.rootViewController?.present() 来自自定义类
swift `UIApplication.shared.isNetworkActivityIndicatorVisible`管理クラス(延迟非対応)