我正在构建一个浏览器应用程序.我希望iOS将其检测为浏览器.我尝试将http添加到URL Schemes但是徒劳无功.
我试过this answer.
解决方法
在iOS中,操作系统不会跟踪哪些应用程序是浏览器,就系统而言,用户应该使用Safari来处理所有内容.因此,没有类似于您链接的问题的API,它指的是macOS.
但是,如果您希望应用程序显示在“打开方式”弹出窗口中,则可以显示set your app as able to open certain document types.有很多system-declared document types,但您可能需要特别注意与web.html相关的网站,例如public.html(kUTTypeHTML) ).
不幸的是,我很确定iOS不允许应用程序声明支持打开普通的http URL,只支持自定义URL方案,但您仍然可能希望声明对某些文件类型(如HTML)的支持,以防用户尝试打开一个.这是一个例子:
首先,您需要告诉Xcode您支持哪些文档,您可以通过选择目标,转到信息和添加文档类型来执行此操作:
然后,只要您的应用程序被要求打开.webarchive文件,This document就会描述您必须从中打开它的位置.基本上,因为您不拥有文件类型,所以您可以在任一应用程序中查看选项字典: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传递给你的应用程序的另一部分即可.
但同样,用户可能仍然无法访问Safari并只是将网页共享到您的应用程序.您的应用程序可能只会在用户实际点击实际html文件时显示,但它可能是iOS提供的最接近您想要的内容.