Запретить пользователю покидать сайт в 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
?