Запретить пользователю покидать сайт в Swift

Я хочу создать WebView в iPad-приложении, которое отображает веб-сайт. Я хочу запретить пользователю переходить по ссылкам, которые ссылаются на другие сайты (например, Facebook, Twitter, ...), но ему должно быть позволено свободно перемещаться по текущему сайту.

Как мне этого добиться?

Я пробовал с:

func webView(WebViewNews: UIWebView!, shouldStartLoadWithRequest request: NSURLRequest!, navigationType: UIWebViewNavigationType) -> Bool {
    let newWebsite:String = (request.URL?.path)!
    print(newWebsite)
    if newWebsite.rangeOfString("float-schwabing") != nil{
        return true;
    } else {
        return false;
    }
}

Это не сработало. Я все еще могу получить доступ к другим веб-сайтам.

Было бы здорово, если бы кто-нибудь мог мне помочь с этим.

2 ответа

Как вы уже сделали, вы должны иметь возможность перемещаться по вашему сайту, у вас могут быть некоторые внутренние ссылки. Попробуйте приведенный ниже код вместо того, как вы сделали это сегодня:

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    if String(request.URL!).rangeOfString("YOUR WEBSITE") != nil{
        return true
    }
    else{
        return false
    }
}

Вы в основном проверяете, содержит ли URL-адрес запроса имя вашего веб-сайта, если вы хотите открыть эту ссылку, в противном случае вы этого не сделаете.

Проблема должна быть в вашем if Скажите, вы пытались return false во всех случаях еще? просто посмотреть, сработало ли это или нет?

func webView(WebViewNews: UIWebView!, shouldStartLoadWithRequest request: NSURLRequest!, navigationType: UIWebViewNavigationType) -> Bool {
    return false
}

И... это редко, но почему нет, вы добавили делегата в свой webView?

Другие вопросы по тегам