要判断WKWebView是否调用了/member/logout post接口,可以通过WKScriptMessageHandler协议来实现。首先,需要设置WKWebView的configuration属性的userContentController的scriptMessageHandler属性,并实现WKScriptMessageHandler协议的方法。

示例代码如下:

  1. 创建一个类并实现WKScriptMessageHandler协议方法:
// MyScriptMessageHandler.h

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

@interface MyScriptMessageHandler : NSObject <WKScriptMessageHandler>

@property (nonatomic, strong) void (^logoutHandler)(void);

@end

// MyScriptMessageHandler.m

#import "MyScriptMessageHandler.h"

@implementation MyScriptMessageHandler

- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message {
    if ([message.name isEqualToString:@"logout"]) {
        // 调用了/logout接口
        if (self.logoutHandler) {
            self.logoutHandler();
        }
    }
}

@end
  1. 在需要使用WKWebView的地方,创建WKWebView并设置configuration的userContentController的scriptMessageHandler属性:
// ViewController.m

#import "ViewController.h"
#import <WebKit/WebKit.h>
#import "MyScriptMessageHandler.h"

@interface ViewController () <WKNavigationDelegate>

@property (nonatomic, strong) WKWebView *webView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 创建WKWebView
    self.webView = [[WKWebView alloc] initWithFrame:self.view.bounds];
    self.webView.navigationDelegate = self;
    [self.view addSubview:self.webView];
    
    // 设置WKWebView的configuration的userContentController的scriptMessageHandler属性
    MyScriptMessageHandler *scriptMessageHandler = [[MyScriptMessageHandler alloc] init];
    __weak typeof(self) weakSelf = self;
    scriptMessageHandler.logoutHandler = ^{
        // 处理/logout接口的逻辑
        [weakSelf handleLogout];
    };
    [self.webView.configuration.userContentController addScriptMessageHandler:scriptMessageHandler name:@"logout"];
    
    // 加载网页
    NSURL *url = [NSURL URLWithString:@"https://example.com"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [self.webView loadRequest:request];
}

- (void)dealloc {
    // 移除scriptMessageHandler
    [self.webView.configuration.userContentController removeScriptMessageHandlerForName:@"logout"];
}

- (void)handleLogout {
    // 处理/logout接口的逻辑
    NSLog(@"调用了/logout接口");
}

@end

在上述代码中,我们创建了一个名为MyScriptMessageHandler的类,实现了WKScriptMessageHandler协议的方法。在didReceiveScriptMessage:方法中,我们判断了message.name是否为"logout",如果是,则说明调用了/logout接口。在ViewController中,我们设置了WKWebView的configuration的userContentController的scriptMessageHandler属性,并在handleLogout方法中处理/logout接口的逻辑。

通过以上代码,我们可以判断WKWebView是否调用了/member/logout post接口,并可以在handleLogout方法中进行相关处理

ios 判断wkwebview有没有调用memberlogout post接口 object-c

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

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