要在iOS中捕捉WKWebView的跳转,你需要实现WKNavigationDelegate协议,并设置WKWebView的navigationDelegate属性为你的实现类的实例。然后,你可以在实现类中的相应方法中处理跳转事件。

以下是一个简单的示例:

首先,在你的ViewController.h文件中声明WKWebViewDelegate:

#import <UIKit/UIKit.h>
#import <WebKit/WebKit.h>

@interface ViewController : UIViewController <WKNavigationDelegate>

@property (nonatomic, strong) WKWebView *webView;

@end

然后,在ViewController.m文件中实现WKNavigationDelegate的方法:

#import "ViewController.h"

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 创建WKWebView
    self.webView = [[WKWebView alloc] initWithFrame:self.view.bounds];
    self.webView.navigationDelegate = self;
    [self.view addSubview:self.webView];
    
    // 加载URL
    NSURL *url = [NSURL URLWithString:@"https://www.example.com"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [self.webView loadRequest:request];
}

#pragma mark - WKNavigationDelegate

// 页面开始加载时调用
- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation {
    NSLog(@"页面开始加载");
}

// 页面加载完成时调用
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
    NSLog(@"页面加载完成");
}

// 页面加载失败时调用
- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error {
    NSLog(@"页面加载失败:%@", error);
}

// 在发送请求之前,决定是否跳转
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
    NSURL *url = navigationAction.request.URL;
    NSLog(@"即将跳转到:%@", url);
    
    // 在这里可以根据需要来处理跳转事件
    
    // 允许跳转
    decisionHandler(WKNavigationActionPolicyAllow);
}

@end

在上面的示例中,我们创建了一个WKWebView,并将navigationDelegate属性设置为ViewController实例。然后,我们加载了一个URL,并实现了一些WKNavigationDelegate方法来处理页面加载事件和跳转事件。

webView:decidePolicyForNavigationAction:decisionHandler:方法中,你可以根据需要来处理跳转事件。在这个示例中,我们只是简单地打印了即将跳转的URL,然后允许跳转。

你可以根据你的具体需求在这个方法中实现自己的逻辑,例如拦截某些特定的URL跳转,或者在页面加载之前进行一些操作

ios 捕捉wkwebview跳转 object-c

原文地址: https://www.cveoy.top/t/topic/ivHg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录