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

ios – 将UIWebView限制为特定URL(Swift),第1张

概述我正在尝试开发一个在 Swift中具有UIWebView的iOS应用程序,但是我需要它只能使用一个域,并且在UIWebView中点击的任何外部链接都可以在Safari中打开. (E.G.所有指向http://example.com的链接都将在UIWebView中打开,但在Safari中会打开指向http://twitter.com的链接). 我在网上找到了几个解决方案但是唯一的Swift版本(在这 我正在尝试开发一个在 Swift中具有UIWebVIEw的iOS应用程序,但是我需要它只能使用一个域,并且在UIWebVIEw中点击的任何外部链接都可以在Safari中打开. (E.G.所有指向http://example.com的链接都将在UIWebVIEw中打开,但在Safari中会打开指向http://twitter.com的链接).

我在网上找到了几个解决方案但是唯一的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}

是的,为了解决这个问题,你可以控制将你的UIWebVIEw拖动到代表视图的UIVIEwController,然后确保委托函数的名称与“IBOutlet weak var”相同,就像这样

您还需要确保视图控制器实现uiwebviewdelegate

class OfferDetailVIEwController : UIVIEwController,uiwebviewdelegate{    ...

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

overrIDe func vIEwDIDLoad() {    self.webVIEw.delegate = self;}
总结

以上是内存溢出为你收集整理的ios – 将UIWebView限制为特定URL(Swift)全部内容,希望文章能够帮你解决ios – 将UIWebView限制为特定URL(Swift)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1032693.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-24
下一篇2022-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存