基于WKURLSchemeHandler进行自定义scheme注册拦截,实现预加载4. 起本地服务器加载本地资源5.sonic技术方案:6.支付宝方案:7.爱奇艺方案:8.今日头条方案:1. 基于WKURLSchemeHandler进行自定义scheme注册拦截,实现预加载描述:将scheme设置为我们自定义的customScheme WKURLSchemeHandler拦截对customScheme
设置配置对象 [configuration setJavaScriptEnabled:YES]; // 创建WebKit的session对象 WKURLSchemeHandler *urlSchemeHandler = [[WKURLSchemeHandler alloc] init]; [configuration setURLSchemeHandler:urlSchemeHandler
WKWebsiteDataStore WKHTTPCookieStore WKHTTPCookieStoreObserver WKWebsiteDataRecord 处理WebKit无法处理的URL Scheme类型的资源 WKURLSchemeHandler 如果将其设为WKDataDetectorTypeLink类型,浏览器将会对页面中的“Visit apple.com” 字符串中的 “apple.com”添加链接 为指定的URL Scheme添加处理器(WKURLSchemeHandler ) - (void)setURLSchemeHandler:(id<WKURLSchemeHandler>)urlSchemeHandler forURLScheme:(NSString *)urlScheme 组成 返回URL Scheme对应的WKURLSchemeHandler - (id<WKURLSchemeHandler>)urlSchemeHandlerForURLScheme:(NSString 选择此值将自动包含添加到这个常量的任何新的检测类型 WKURLSchemeHandler 用来处理WebKit无法处理的URL Scheme类型的资源 开始加载特定资源时调用 - (void)webView
Developers iOS 11中,对WKWebView进行了增强修复型的更新: 新增了 WKHTTPCookieStore 来管理与 WKWebsiteDataStore 相关的HTTP cookie 新增了 WKURLSchemeHandler
使用WKURLSchemeHandler可以拦截URL的内容: ? 咋眼一看以为和UIWebview的能力一致,但细看还不一定,只能拦截WKWebview不会处理的URL Scheme: ?
YES NO 结论 按照指定尺寸进行缩放 无法进行缩放 任意放大 任意放大 自定义拦截协议 iOS11 以上新支持 - (void)setURLSchemeHandler:(nullable id <WKURLSchemeHandler urlSchemeHandler forURLScheme:(NSString *)urlScheme API_AVAILABLE(macos(10.13), ios(11.0)); - (nullable id <WKURLSchemeHandler
文章详细介绍了 HTTP 缓存机制,并分析了多种可能的预加载和缓存方案,包括完善 HTTP 缓存、WKWebView 预加载、使用 URLProtocol 和 WKURLSchemeHandler 等。
在 iOS 中可以使用 WKURLSchemeHandler 进行拦截,Native 拦截到地址后,需要解析出文件名(前端 js 、css 等资源通常带了 md5 值,可以唯一标识),然后根据文件名去本地查找