tencent cloud

移动解析 HTTPDNS

产品简介
产品介绍
应用场景
产品优势
产品限制
购买指南
计费说明
欠费说明
快速入门
开通移动解析 HTTPDNS
接入移动解析 HTTPDNS
操作指南
添加域名
解析量统计说明
解析监控
API 文档
配置信息说明
HTTP 请求方式查询
AES、DES 加密解密说明
API 接入实践教程
SDK 文档
SDK 快速接入
IOS SDK 文档
Android SDK 文档
访问管理及协作
访问管理概述
访问管理策略示例
常见问题
HTTPDNS 政策
隐私协议
数据处理和安全协议

WKWebView 实践

PDF
聚焦模式
字号
最后更新时间: 2025-09-05 17:52:26

方案描述

此方案使用 NSURLProtocol 拦截请求,具体步骤:
1. 通过 WKWebView 的私有 API 注册 scheme,保证 NSURLProtocol 可以拦截 WKWebView 中的请求。
2. 根据您使用的网络库类型创建请求。
3. 使用 WKWebView.loadRequest 加载请求。

前提条件

完成 iOS SDK 接入

代码示例

注意:
本文档提出了 WebView 场景下 HTTPDNS 集成的参考方案,示例代码非线上生产环境正式代码。在接入之前,我们建议您充分评估本文档内容,以确保方案的健壮性符合您的生产标准。
如果需要参考示例,您可以参考 MSDKDnsHttpMessageTools 的 源码,可根据业务需求进行修改或复用。
完整的示例代码在 Demo 的 WebViewController.m 中。
// 1.注册拦截请求的 NSURLProtocol
[NSURLProtocol registerClass:[MSDKDnsHttpMessageTools class]];

// 2.注册scheme
Class cls = NSClassFromString(@"WKBrowsingContextController");
SEL sel = NSSelectorFromString(@"registerSchemeForCustomProtocol:");
if ([cls respondsToSelector:sel]) {
// 通过http和https的请求,同理可通过其他的Scheme 但是要满足ULR Loading System
[cls performSelector:sel withObject:@"http"];
[cls performSelector:sel withObject:@"https"];
}

// 3.使用WKWebView.loadRequest
[self.wkWebView loadRequest:request];



帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈