gpt4 book ai didi

ios - 将 UIWebView 限制为特定的 URL (Swift)

转载 作者:可可西里 更新时间:2023-11-01 05:04:23 26 4
gpt4 key购买 nike

我正在尝试开发一款在 Swift 中具有 UIWebView 的 iOS 应用程序,但我需要它仅适用于一个域,并且在该 UIWebView 中单击的任何外部链接都将在 Safari 中打开。 (例如,所有指向 http://example.com 的链接都将在 UIWebView 中打开,但指向 http://twitter.com 的链接将在 Safari 中打开)。

我在网上找到了几个解决方案,但唯一的 Swift 版本(可在此处找到:UIWebView open links in Safari)可以打开 Safari 中的每个链接,我只希望外部链接可以这样做。

有人能帮忙吗?谢谢。

最佳答案

@MattFlier 的解决方案是正确的,但不能使用最新的 Swift 编译器进行编译。解包 NSURLRequest URL 属性很重要,因此更新的解决方案是:

func webView(webView: UIWebView!, shouldStartLoadWithRequest request: NSURLRequest!, navigationType: UIWebViewNavigationType) -> Bool {
if navigationType == UIWebViewNavigationType.LinkClicked {
if (request.URL!.host! == "example.com"){
return true
} else {
UIApplication.sharedApplication().openURL(request.URL!)
return false
}
}
return true
}

是的,要连接它,您可以按住 Control 并拖动您的 UIWebView 到代表该 View 的 UIViewController,然后确保委托(delegate)函数的名称与“IBOutlet weak var”相同,就像这样

What this looks like

需要确保您的 View Controller 实现UIWebViewDelegate

class OfferDetailViewController : UIViewController, UIWebViewDelegate
{
...

然后在您的 viewDidLoad() 方法中,您还需要像这样分配委托(delegate):

override func viewDidLoad() {
self.webView.delegate = self;
}

关于ios - 将 UIWebView 限制为特定的 URL (Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27464407/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com