将我的iOS应用程序检测为Web浏览器

我正在构建一个浏览器应用程序.我希望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提供的最接近您想要的内容.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...