ios Swift如何打开多个URL方案

sczxawaw  于 2022-11-19  发布在  iOS
关注(0)|答案(2)|浏览(173)

我想做一个应用程序,打开许多网址方案。
为了使它,我试了一些办法:
1.我使用了UIApplication.shared.open(url, options: [:], completionHandler: nil)
但是这样我必须在info.plist中添加URL方案。
info.plist中,我最多可以添加50个URL方案。
(我想添加50多个URL方案)
1.我尝试使用WKWebView
但是WKWebView不处理非http URL模式。
webview只打开http、https。
我想打开超过50个URL方案,我应该怎么做?

gwbalxhn

gwbalxhn1#

你可以使用SafariServices框架,如果你从某个视图控制器调用它,代码看起来会像这样:

if let url = URL(string: "<your_url>") {
    let safariVC = SFSafariViewController(url: url)
    present(safariVC, animated: true, completion: nil)
}
f8rj6qna

f8rj6qna2#

我读了这篇关于你提到的50个计划限制的文章。
https://book.hacktricks.xyz/mobile-pentesting/ios-pentesting/ios-custom-uri-handlers-deeplinks-custom-schemes
它说只有当你使用canOpenURL(为了检查应用程序是否安装在设备上而调用的系统方法)时,你才需要添加方案。所以,也许你可以使用另一种检查方法来代替canOpenURL,这样你就不需要向info.plist添加方案了
您始终可以检查传递给www.example.com(...)的完成处理程序的Bool值UIApplication.shared.open,以判断其他应用程序是否已打开。

相关问题