迁移仓库
This commit is contained in:
51
ShenQi/GDWebURLSchemeHandler.m
Normal file
51
ShenQi/GDWebURLSchemeHandler.m
Normal file
@@ -0,0 +1,51 @@
|
||||
//
|
||||
// GDWebURLSchemeHandler.m
|
||||
// DESThreeTest
|
||||
//
|
||||
// Created by Qwerdf on 2025/10/24.
|
||||
// Copyright © 2025 zhang alan. All rights reserved.
|
||||
//
|
||||
|
||||
#import "GDWebURLSchemeHandler.h"
|
||||
#import "GDWebAssetStorageService.h"
|
||||
#import "GDWebPageHookService.h"
|
||||
#import "GDWebURLSessionService.h"
|
||||
|
||||
@implementation GDWebURLSchemeHandler
|
||||
|
||||
- (instancetype)init {
|
||||
|
||||
_tasks = [NSMutableDictionary dictionary];
|
||||
_schemeStatusDic = [NSMutableDictionary dictionary];
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)webView: (WKWebView *)webView startURLSchemeTask: (id<WKURLSchemeTask>)urlSchemeTask {
|
||||
|
||||
id<GDWebCustomURLSchemeProtocol> service;
|
||||
if ([GDWebAssetStorageService canService:urlSchemeTask]) {
|
||||
service = [[GDWebAssetStorageService alloc] initWithSchemeTask:urlSchemeTask];
|
||||
}else if ([GDWebPageHookService canService:urlSchemeTask]) {
|
||||
service = [[GDWebPageHookService alloc] initWithSchemeTask:urlSchemeTask];
|
||||
}else {
|
||||
service = [[GDWebURLSessionService alloc] initWithSchemeTask:urlSchemeTask];
|
||||
GDWebURLSessionService *webService = (GDWebURLSessionService *)service;
|
||||
webService.stopMarkDic = self.schemeStatusDic;
|
||||
}
|
||||
[self.tasks setValue:service forKey:urlSchemeTask.description];
|
||||
[service startLoading:^{
|
||||
// GDStrongify(self);
|
||||
[self.tasks removeObjectForKey:urlSchemeTask.description];
|
||||
}];
|
||||
|
||||
}
|
||||
|
||||
- (void)webView: (WKWebView *)webView stopURLSchemeTask: (id<WKURLSchemeTask>)urlSchemeTask {
|
||||
[self.schemeStatusDic setObject:@1 forKey:urlSchemeTask.description];
|
||||
NSURL *URL = urlSchemeTask.request.URL;
|
||||
id<GDWebCustomURLSchemeProtocol> service = self.tasks[URL.absoluteString];
|
||||
[service stopLoading];
|
||||
[self.tasks removeObjectForKey:urlSchemeTask.description];
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user