禁用UIWebView以打开链接以重定向到我的iPhone上安装的应用程序

时间:2018-01-12 06:22:27

标签: ios uiwebview url-redirection deep-linking uiwebviewdelegate

当我在我的应用程序中浏览某些链接时(在UIWebView中),它会打开我设备中安装的该链接的应用程序。如何限制它打开外部应用程序并在我的UIWebView中加载相同的URL。

2 个答案:

答案 0 :(得分:0)

您可以在UIWebViewDelegate中使用func webView(UIWebView, shouldStartLoadWith: URLRequest, navigationType: UIWebViewNavigationType)来执行此操作。例如:

func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    let urlString = request.url?.absoluteString ?? ""
    if urlString == <your app link on webview> {
        return false
    }

    return true
}

您现在只需将<your app link on webview>替换为您不希望网络视图导航到的实际链接

答案 1 :(得分:0)

也许有人会发现它很有用:

func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    if navigationType == .linkClicked, let req = request.urlRequest {
       webView.loadRequest(req)
        return false
    }
    return true
}

因此,我阻止在侧面应用程序中打开链接,例如YouTube应用程序,但在UIWebView中打开它。