首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在swift中从webView打开外部链接?

在Swift中,可以使用WKWebView来打开外部链接。下面是一个完整的示例代码:

代码语言:txt
复制
import UIKit
import WebKit

class ViewController: UIViewController, WKNavigationDelegate {
    
    var webView: WKWebView!
    
    override func loadView() {
        webView = WKWebView()
        webView.navigationDelegate = self
        view = webView
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let url = URL(string: "https://www.example.com")!
        webView.load(URLRequest(url: url))
        webView.allowsBackForwardNavigationGestures = true
    }
    
    // 处理外部链接的跳转
    func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
        if navigationAction.targetFrame == nil {
            webView.load(navigationAction.request)
        }
        decisionHandler(.allow)
    }
}

这段代码创建了一个WKWebView实例,并将其设置为视图控制器的视图。然后,通过load()方法加载指定的URL,并设置allowsBackForwardNavigationGestures属性为true以启用前进和后退手势。

为了处理外部链接的跳转,我们实现了WKNavigationDelegate协议,并在decidePolicyFor方法中检查目标框架是否为空。如果为空,表示链接将在新的窗口中打开,我们通过load()方法加载该链接。

请注意,这只是一个简单的示例,你可以根据自己的需求进行扩展和定制。如果你想了解更多关于WKWebView的信息,可以参考腾讯云提供的WKWebView产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 从0到1实现一个Android路由(1)——初探路由

    什么是路由?最初接触路由是在大学计算机网络中,网络层IP报文传输会涉及一个路由表的概念,路由表由源IP、目的IP组成,起始就是一个映射表。Android路由也是一个映射表,映射什么呢? 这里先类比一下,如果把手机类比于浏览器,那么每个app就可以类比于一个个的网站,比如百度、头条等等,那么每个app的一个页面就可以类比于一个个网站里面的页面,浏览器的每个页面由url定义,给不同url传递不同参数,页面的表现形式还稍有不通过,这里的映射关系就是url对应页面,每个app的每个页面也可以类比于网站的页面,那是不是可以采用url的方式来定义每个页面呢?这样是不是也就有了url对应app页面的映射关系,如果有了这样的映射关系,给定一个url,那是不是就可以知道跳转到某一个具体的Activity了?Android路由其实就是解决这样的问题,那么实现一个最基础的Android路由主要有以下几步:

    02
    领券