deeplink2

func webView(_ webView: WKWebView,

            decidePolicyFor navigationAction: WKNavigationAction,

            decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {

    guard let url = navigationAction.request.url else {

        decisionHandler(.allow)

        return

    }

    // ✅ Universal Link 域名跳系统(如跳 App)

    if url.host?.contains("retail.sc.com") == true {

        UIApplication.shared.open(url, options: [:], completionHandler: nil)

        decisionHandler(.cancel)

        return

    }

    // ✅ 原有内部域名逻辑(可选)

    if configuration.domainType.isValidDomain(url: url) {

        decisionHandler(.allow)

        return

    }

    // ❌ 其他情况默认禁止

    decisionHandler(.cancel)

    handleError()

}

func webView(_ webView: WKWebView,

            createWebViewWith configuration: WKWebViewConfiguration,

            for navigationAction: WKNavigationAction,

            windowFeatures: WKWindowFeatures) -> WKWebView? {

    if let url = navigationAction.request.url {

        UIApplication.shared.open(url, options: [:], completionHandler: nil)

    }

    return nil

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容