我正在构建一个浏览器应用程序。我希望 iOS 将其检测为浏览器。我尝试将 http
添加到 URL Schemes,但没有成功。
我试过了 this answer .
最佳答案
在 iOS 中,操作系统不会跟踪哪些应用程序是浏览器,就系统而言,用户应该使用 Safari 进行所有操作。因此,没有类似于您链接的问题的 API,它指的是 macOS。
但是,如果您希望您的应用显示在“打开方式”弹出窗口中,您可以 set your app as able to open certain document types .有很多 system-declared document types ,但您可能需要特别注意与网络相关的内容,例如 public.html (kUTTypeHTML
)。
不幸的是,我相当确定 iOS 不允许应用程序声明支持打开纯 http URL,只允许自定义 URL 方案,但您仍然可能希望声明对某些文件类型(如 HTML)的支持,以防万一用户试图打开一个。这是一个例子:
首先,您需要告诉 Xcode 您支持哪些文档,您可以通过选择目标、转到信息并添加文档类型来实现:
然后,只要您的应用程序被要求打开 .webarchive 文件,This document描述了您必须从哪里打开它。基本上,因为您不拥有文件类型,所以您可以在 application:didFinishLaunchingWithOptions:
或 application:willFinishLaunchingWithOptions
中查看选项字典。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
if let url = launchOptions?[UIApplicationLaunchOptionsKey.url] as? URL {
// This code would probably exist in one of your controllers
let request = URLRequest(url: url)
webview.load(request)
}
return true
}
所以实际上,AppDelegate
很可能会通过简单地将 URL
传递给应用程序的另一部分来将其委托(delegate)给它。
但同样,用户仍然可能无法直接转到 Safari 并将网页共享到您的应用程序。您的应用可能只会在用户实际点击实际 html 文件上的共享时显示,但这可能是 iOS 提供的最接近您想要的东西。
关于ios - 将我的 iOS 应用程序检测为网络浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39785424/