Skip to main content
 首页 » 操作系统

javascript之Swift之在 WebView 中禁用链接

2024年01月01日35zhoujg

我目前正在寻找一种方法来禁用我的 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\";") 

请您参考如下方法:

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

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    return NO; 
} 

对于 swift read here

swift :

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