You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Objective-C中WebKit无法加载HTTP内容的问题求助

问题原因

iOS 9及以后系统默认启用App Transport Security (ATS),该机制会阻止App加载非HTTPS的HTTP内容,这就是你用HTTP链接无法加载但HTTPS正常的核心原因。

解决方案

你可以通过修改Info.plist文件来配置ATS规则,以下是两种常用方案:

方案1:仅允许特定域名的HTTP请求(推荐,更安全)

这种方式只对指定域名开放HTTP权限,不会降低整个App的安全性。在Info.plist中添加以下配置:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>apple.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

如果需要添加多个域名,在NSExceptionDomains下继续添加对应的域名字典即可。

方案2:全局禁用ATS(不推荐,仅测试或特殊场景使用)

这种方式会关闭整个App的ATS限制,存在安全风险,仅建议在测试环境临时使用。在Info.plist中添加以下配置:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
代码验证

你提供的加载代码本身没有问题,配置完ATS规则后,重新运行App即可正常加载HTTP链接:

NSString *loadedURL = @"http://www.apple.com";
NSURL *targetURL = [NSURL URLWithString:loadedURL];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[_webView loadRequest:request];

内容的提问来源于stack exchange,提问作者Marcin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 05:30:43