You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在iOS 26 WebView中加载HTML,点击链接跳转至默认浏览器(如Safari)

在iOS WKWebView中让链接跳转至默认浏览器

核心思路

拦截WebView内的链接请求,当检测到是用户主动点击的外部链接时,调用系统API唤起默认浏览器打开该链接,同时阻止WebView自身加载此链接。

实现步骤

  1. 配置WKWebView并设置代理
    确保你的视图控制器遵守WKNavigationDelegate协议,初始化WKWebView并绑定代理:

    import WebKit
    
    class YourViewController: UIViewController, WKNavigationDelegate {
        private var webView: WKWebView!
    
        override func viewDidLoad() {
            super.viewDidLoad()
            
            let webConfig = WKWebViewConfiguration()
            webView = WKWebView(frame: view.bounds, configuration: webConfig)
            webView.navigationDelegate = self
            view.addSubview(webView)
    
            // 加载目标HTML内容(示例为本地HTML字符串)
            let htmlContent = "<html><body><p><a href='https://example.com'>点击打开外部链接</a></p></body></html>"
            webView.loadHTMLString(htmlContent, baseURL: nil)
        }
    }
    
  2. 拦截链接请求并处理跳转
    实现WKNavigationDelegate的decidePolicyFor navigationAction方法,精准拦截用户点击的链接并跳转至默认浏览器:

    func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
        // 仅处理用户主动点击的链接,排除自动跳转等场景
        guard navigationAction.navigationType == .linkActivated, let targetURL = navigationAction.request.url else {
            decisionHandler(.allow)
            return
        }
    
        // 验证URL可被系统打开后,唤起默认浏览器
        if UIApplication.shared.canOpenURL(targetURL) {
            UIApplication.shared.open(targetURL)
            decisionHandler(.cancel) // 阻止WebView加载该链接
        } else {
            decisionHandler(.allow) // 无法打开时,让WebView正常处理
        }
    }
    
  3. 可选:Info.plist配置
    若需打开某些特殊协议的链接(如自定义scheme),需在Info.plist中添加LSApplicationQueriesSchemes数组,填入对应的协议名称(例如https、mailto),不过常见的HTTP/HTTPS协议无需额外配置。

注意事项

  • 确保链接带有完整的协议前缀(如http://或https://),否则canOpenURL可能返回false导致无法跳转。
  • 不要拦截所有请求,仅针对用户主动点击的链接处理,避免破坏WebView内部的正常页面逻辑。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 18:52:04