首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“成功”HTTPS NSURLRequest后的NSURLRequest空白

“成功”HTTPS NSURLRequest后的NSURLRequest空白
EN

Stack Overflow用户
提问于 2015-09-25 10:36:03
回答 3查看 9.8K关注 0票数 8

我创建了一个NSURLRequest (HTTPS)

WKWebView的委托回调成功返回,没有错误。

“decidePolicyForNavigationAction”在决策处理程序中提供了允许Enum

代码语言:javascript
运行
复制
   @available(iOS 8.0, *)
    func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {

        decisionHandler(.Allow)

    }

didReceiveAuthChallenge是这样处理的:

代码语言:javascript
运行
复制
@available(iOS 8.0, *)
func webView(webView: WKWebView, didReceiveAuthenticationChallenge challenge: NSURLAuthenticationChallenge,
    completionHandler: (NSURLSessionAuthChallengeDisposition, NSURLCredential?) -> Void) {
        let cred = NSURLCredential.init(forTrust: challenge.protectionSpace.serverTrust!)
        completionHandler(.UseCredential, cred)
        print("Did receive auth challenge")
}

由于在'didFinishNavigation'之后没有错误,所以我不确定WebView中有什么问题,因为我的WebView仍然是空白的。如果我使用UIWebView,我得到正确的网页显示?

干杯,

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-29 11:56:01

要检测错误,您应该确保实现didFailNavigation:withErrordidFailProvisionalNavigation:withError

从起作用的链接来看,它们似乎是https URL。不是的是http URL。实现上述错误方法应该会告诉您发生了什么问题。

iOS9中有一个新的安全特性,它无法加载HTTP,除非服务器符合特定的规则集,或者设置xcode来覆盖新特性。您可以通过在Info.plist文件中添加以下内容来覆盖新特性。只需在底部粘贴以下内容:

代码语言:javascript
运行
复制
<key>NSAppTransportSecurity</key>  
<dict> 
   <key>NSAllowsArbitraryLoads</key><true/>  
</dict> 

这将覆盖所有新功能。但是,您可以执行更具体的重写。苹果科技公司关于这些变化的说明如下:https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/index.html

票数 12
EN

Stack Overflow用户

发布于 2015-09-29 11:40:33

我也有这个问题,但在一个培训视频中找到了这个解决方案:

  1. 向您的info.plist添加一个字典键,名称如下: NSAppTransportSecurity
  2. 创建一个名为NSAllowsArbitraryLoads的布尔子项,并将其设置为TRUE。

在那之后,它在这里起作用了。

票数 3
EN

Stack Overflow用户

发布于 2017-07-03 18:42:31

确保您的WKWebView框架在viewDidLoad中设置为正高度,因为否则webview没有高度,并且在加载后似乎不会调整自身大小:

代码语言:javascript
运行
复制
_webView =[[WKWebView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height )];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32780311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档