2016-04-05 54 views
0

我想在顯示網站的iPad應用中創建WebView。我想阻止用戶點擊鏈接到其他網站(例如Facebook,Twitter,...)的鏈接,但他應該被允許在當前網站上自由移動。防止用戶在Swift中離開網站

我該如何做到這一點?

我試着用:

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; 
    } 
} 

它沒有工作,雖然。我仍然可以訪問其他網站。

如果有人能幫助我,這將是非常棒的。

+0

檢查了這個http://stackoverflow.com/questions/2098797/disable-links-in-uiwebview –

回答

-1

該問題應該在您的if聲明中,您是否嘗試過return false在所有情況下都沒有?只是爲了看看它是否有效?

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

而且......這是罕見的,但爲什麼不呢,你委託添加到您的webView

+0

我沒有添加委託給我的webView ...我怎麼能做到這一點?我不能只將代表設置爲自我...我很抱歉我是iOS開發新手這個愚蠢的問題。 –

+0

這不僅僅是一個回答而是一個評論。 – JAL

+0

@AndreasThaler你可以按照這個鏈接https://ioswift.wordpress.com/2014/07/03/uiwebview-in-swift/ 基本上有3個步驟: - 與UIWebViewDelegate 擴展您的ViewController - 分配web視圖。委託=自我 - 寫shouldStartLoadWithRequest委託(你做到了) –

1

正如你所做的,你應該能夠在你的網站內導航,你可能有一些內部鏈接。嘗試下面的代碼,而不是你今天怎麼了這事

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

你基本上檢查,如果請求網址中包含您的網站的名字,如果這樣做,你可能想打開該鏈接,否則你鴕鳥政策。