WKWebView以编程方式重新加载触发器didFailProvisionalNavigation

时间:2015-05-15 09:05:05

标签: ios wkwebview

UISplitViewController基础应用,主要为UITableViewController,详情为UIViewController

UITableViewController小区点按,NSNotificationCenter发布notification后,重新加载WKWebView中的detailViewController

成功重新加载,但总是触发WKNavigationDelegate [webView:didFailProvisionalNavigation:withError:],为什么????

MasterViewController

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    dispatch_async(dispatch_get_main_queue(), ^{

    [[NSNotificationCenter defaultCenter]postNotificationName:aNotification
                                                       object:nil];
    });
}

DetailViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(__shouldReload:) name:aNotification object:nil];
}

- (void)__shouldReload:(NSNotification *)sender
{
    [_webView reload];
}

1 个答案:

答案 0 :(得分:0)

这是由" App Transport Security"引起的。您可以使用HTTPS,也可以在Info.plist中设置例外。

<key>NSAppTransportSecurity</key>                                                                                                                                                                                                                                       
<dict>                                                                                                                                                                                                                                                                  
    <key>NSAllowsArbitraryLoads</key>                                                                                                                                                                                                                                   
    <true/>                                                                                                                                                                                                                                                             
</dict>

WWDC视频Networking with NSURLSession

What's New in iOS 9

  

App Transport Security

     

应用传输安全(ATS)在应用及其后端之间的安全连接中实施最佳做法。 ATS防止意外泄露,提供安全的默认行为,并且易于采用;它在iOS 9和OS X v10.11中默认也是打开的。无论您是在创建新应用程序还是更新现有应用程序,都应该尽快采用ATS。

     

如果您正在开发新应用,则应该专门使用HTTPS。如果您有现有应用,则应尽可能多地使用HTTPS,并创建一个计划,以便尽快迁移其余应用。此外,您通过更高级别的API进行的通信需要使用具有前向保密性的TLS 1.2版进行加密。如果您尝试建立不符合此要求的连接,则会引发错误。如果您的应用需要向不安全的域发出请求,则必须在应用的Info.plist文件中指定此域。