Swift - 在 WebView 中禁用链接

Posted

技术标签:

【中文标题】Swift - 在 WebView 中禁用链接【英文标题】:Swift - Disable Links in WebView 【发布时间】:2014-09-26 09:47:47 【问题描述】:

我目前正在寻找一种方法来禁用我的 WebView 中的链接,这是我的 WebView

import UIKit

class ViewController_webView_news: UIViewController 
    @IBOutlet weak var WebViewNews: UIWebView!
    @IBOutlet weak var TBB_news: UITabBarItem!
    @IBOutlet weak var activity: UIActivityIndicatorView!
    override func viewDidLoad() 
        super.viewDidLoad()

        var TBB_news_img = UIImage(named: "TabbarNews.png") as  UIImage
        TBB_news.selectedImage = TBB_news_img
        var newsurl = "http://google.com"
        let newsViewUrl = NSURL(string: newsurl)
        let request = NSURLRequest(URL: newsViewUrl)
        WebViewNews.loadRequest(request)




    
    override func didReceiveMemoryWarning() 
        super.didReceiveMemoryWarning()

        
    @IBAction func BThome(sender: AnyObject) 

        var newsurl = "http://google.com"
        let newsViewUrl = NSURL(string: newsurl)
        let request = NSURLRequest(URL: newsViewUrl)
        WebViewNews.loadRequest(request)
    
    func webViewDidStartLoad(_ : UIWebView)activity.startAnimating()
    
    func webViewDidFinishLoad(_ : UIWebView)activity.stopAnimating()

有没有办法为此使用“UIWebViewNavigationType.LinkClicked”? 目前我正在使用

let result = WebViewNews.stringByEvaluatingjavascriptFromString("window.location.href = \"http://google.de\";")

【问题讨论】:

【参考方案1】:

使用 UIWebViewDelegate 方法并将其设置为始终返回 NO。这样它就永远不会加载任何其他网址。这是目标 c 代码,您需要将其更改为 swift。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

    return NO;

对于迅捷read here

斯威夫特:

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

【讨论】:

但这只是Objective C还是我没有在swift中看到这个? 在我的“WebViewNews.loadRequest(request)”之后添加了这个,但它仍然让我点击链接 @F***Boulegue,当您单击任何链接时,是否会调用 shouldStartLoadWithRequest ?如果不是,您可能没有为 UIWebView 设置委托。 你的权利它没有被调用,但我已经设置类 ViewController_webView_news: UIViewController, UIWebViewDelegate 以及 WebView 委托到 MainView 看到这里i.epvpimg.com/Uc5ib.png 看下面它被炸了,但一开始加载所以没有任何吸引力

以上是关于Swift - 在 WebView 中禁用链接的主要内容,如果未能解决你的问题,请参考以下文章

如果它进入webview(swift),如何在webview中打开链接

Swift 如何在 Webview 中打开链接?

XCODE swift - webview 无法打开 ics 链接 - 在 safari 中有效

使用 loadDataWithBaseURL 禁用 webview 中的链接

如何在 Webview 中禁用滚动?

从 webview 链接 Swift 启动 waze