You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何将iOS应用设为默认浏览器及Safari禁用时注册链接处理

iOS 默认浏览器设置及Safari禁用后的链接处理方案

1. 如何将我的应用设置为iOS系统的默认浏览器?

首先得明确:iOS 14及以上版本才支持用户把第三方浏览器设为系统默认,所以你的App得先适配这个版本门槛。具体步骤如下:

  • 第一步:配置Info.plist文件
    这是让系统识别你的App为浏览器候选的核心配置,需要添加几个关键项:

    1. 声明支持HTTP/HTTPS链接:添加CFBundleURLTypes数组,包含对应的scheme:
      <key>CFBundleURLTypes</key>
      <array>
          <dict>
              <key>CFBundleURLSchemes</key>
              <array>
                  <string>http</string>
                  <string>https</string>
              </array>
          </dict>
      </array>
      
    2. 标记App为浏览器类别:添加LSApplicationCategoryType并设置为public.browser,告诉系统这是一款浏览器应用:
      <key>LSApplicationCategoryType</key>
      <string>public.browser</string>
      
    3. 设置处理优先级:添加LSHandlerRankDefault,这样你的App会出现在系统默认浏览器的可选列表里:
      <key>LSHandlerRank</key>
      <string>Default</string>
      
  • 第二步:实现链接处理逻辑
    确保你的App能正确接收并打开传入的链接:

    • 如果你用的是UIKit+AppDelegate,在AppDelegate.swift里实现application(_:open:options:)方法:
      func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
          // 在这里处理打开URL的逻辑,比如加载网页
          return true
      }
      
    • 如果你用的是SceneDelegate,实现scene(_:openURLContexts:)方法:
      func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
          guard let url = URLContexts.first?.url else { return }
          // 处理URL逻辑
      }
      
  • 第三步:用户侧设置
    用户需要手动在系统设置里完成切换:打开「设置」→ 找到你的App → 进入「默认浏览器App」选项 → 选择你的App即可。

2. Safari被禁用时,如何注册我的应用处理链接?

当Safari被iOS限制设置禁用后,系统会自动寻找已安装且支持HTTP/HTTPS链接的浏览器类应用来处理所有链接,你只需要确保你的App满足以下条件:

  • 完成上面第一个问题里的Info.plist核心配置(HTTP/HTTPS scheme、public.browser类别、LSHandlerRank),这是系统识别你的App为链接处理候选的基础。
  • 确保你的App没有被限制设置禁用(如果你的App也被禁了,那系统就没可选的了)。
  • 正确实现链接处理逻辑(和第一个问题里的第二步一致)。

不需要额外的特殊配置,只要满足这些条件,当Safari被禁用后,用户点击任何HTTP/HTTPS链接时,系统都会自动用你的App打开(如果有多个符合条件的App,系统可能会让用户选择默认,或者按优先级打开)。


内容的提问来源于stack exchange,提问作者Steve Moser

火山引擎 最新活动