UrK*_*UrK 27 ssl http uiwebview ios ios9
我正在尝试使用https:// URL将页面加载到iOS9上的UIWebView中.加载的页面包括来自不安全服务器的CSS和图像.
例如,页面加载:HTTPS://www.example.com/包括的样式表的http://www.example.com/style.css和图像的http://www.example.com/image.jpg
如果通过不安全连接(常规http)加载原始页面,一切正常.通过HTTPS和HTTP,一切都可以在iOS8上运行.
我没有设定NSAppTransportSecurity到NSAllowsArbitraryLoads应用plist文件:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Run Code Online (Sandbox Code Playgroud)
虽然通过HTTPS加载页面时,图像加载正常,但CSS文件不加载.似乎UIWebView阻止从安全页面加载不安全的资源.
是否有任何UIWebView设置允许通过不安全的连接加载CSS?
Oli*_*ver 17
这与ATS无关.WebKit强制执行混合内容策略,当通过https提供主机页面时,该策略不允许通过不安全的连接加载某些"活动"内容(JS,CSS等)类.
如果在检查器中检查页面,您将在错误面板中看到此报告.
跟进:您无法关闭混合内容阻止.允许不安全的CSS或JS会将整个页面的安全性降低到安全性最低的资源的安全性.如果你必须通过http加载css/js的解决方案是通过http加载整个页面.这样,用户看到的UI正确地反映了内容的安全性.
小智 13
在info.plist中,您需要添加以下App Transport Security密钥:
NSAppTransportSecurity Dictionary
NSAllowsArbitraryLoads Boolean YES
NSExceptionDomains Dictionary
**YOUR-DOMAIN-HERE** Dictionary
NSExceptionAllowsInsecureHTTPLoads Boolean YES
NSIncludesSubdomains Boolean YES
NSThirdPartyExceptionAllowsInsecureHTTPLoads Boolean YES
Run Code Online (Sandbox Code Playgroud)
希望这对你有用.
在iOS9版本中修订了App Transport Security.现在,您的应用程序可以安全地从不安全的连接.iOS强制进行安全连接.在您的情况下,这可能是冲突.
来自Apple文档
如果您的应用需要向不安全的域发出请求,则必须在应用的Info.plist文件中指定此域
所以我认为这可能会在加载.css
网页文件时出现问题.
因此info.plist
,请尝试指定您的域并检查.css
文件是否已加载.
编辑:
Spotlight:您需要在此处添加更多密钥info.plist
.
查看此密钥,NSThirdPartyExceptionAllowsInsecureHTTPLoads
这允许服务域不受开发人员控制,并通过传递不安全资源向传输层添加例外.
为App Transport Security添加密钥的结构如下:
有关所有密钥的更多详细信息和说明,请查看此说明 - App Transport Security Technote
归档时间: |
|
查看次数: |
28032 次 |
最近记录: |