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
}