ios – 如何在Xcode的Safari中打开webview中的任何链接?

ios – 如何在Xcode的Safari中打开webview中的任何链接?,第1张

概述我的应用程序中有一个webview,我希望Web视图中的任何链接都可以在safari中打开而不是Web视图本身. 我正在使用swift对应用程序进行编码,并且已经看到了Objective-c的一些答案,但没有看到swift的答案. 有谁知道我该怎么做呢? 这在Swift和Obj-C中完全相同: 首先,声明您的视图控制器符合UIWebViewDelegate class MyViewControll 我的应用程序中有一个webvIEw,我希望Web视图中的任何链接都可以在safari中打开而不是Web视图本身.

我正在使用swift对应用程序进行编码,并且已经看到了Objective-c的一些答案,但没有看到swift的答案.

有谁知道我该怎么做呢?

解决方法 这在Swift和Obj-C中完全相同:

首先,声明您的视图控制器符合uiwebviewdelegate

class MyVIEwController: uiwebviewdelegate

然后在VIEw Controller中实现webViewShouldStartLoadingWithRequest:navigationType:

// Swift 1 & 2func webVIEw(webVIEw: UIWebVIEw,shouldStartLoaDWithRequest request: NSURLRequest,navigationType: UIWebVIEwNavigationType) -> Bool {    switch navigationType {    case .linkClicked:        // Open links in Safari        UIApplication.sharedApplication().openURL(request.URL)        return false    default:        // Handle other navigation types...        return true    }}// Swift 3func webVIEw(_ webVIEw: UIWebVIEw,shouldStartLoaDWith request: URLRequest,navigationType: UIWebVIEwNavigationType) -> Bool {    switch navigationType {    case .linkClicked:        // Open links in Safari        guard let url = request.url else { return true }        if #available(iOS 10.0,*) {            UIApplication.shared.open(url,options: [:],completionHandler: nil)        } else {            // openURL(_:) is deprecated in iOS 10+.            UIApplication.shared.openURL(url)        }        return false    default:        // Handle other navigation types...        return true    }}

最后,设置UIWebVIEw的委托,例如,在vIEwDIDLoad或Storyboard中:

webVIEw.delegate = self
总结

以上是内存溢出为你收集整理的ios – 如何在Xcode的Safari中打开webview中的任何链接?全部内容,希望文章能够帮你解决ios – 如何在Xcode的Safari中打开webview中的任何链接?所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存