Disabling ATS for an in-app browser in iOS 9?

后端 未结 2 970
死守一世寂寞
死守一世寂寞 2021-01-07 01:39

iOS 9 introduces App Transport Security (ATS) to encourage the use of secure connections.

This is great, but what if my app has a built in web browser that the user

2条回答
  •  盖世英雄少女心
    2021-01-07 01:54

    Rather than enabling NSAllowsArbitraryLoads, a more secure solution is to conditionally use SFSafariViewController, which allows arbitrary loads.

    If the class exists, then present it, otherwise, present your own UIViewController (which contains a UIWebView).

    UIViewController *webBrowser;
    if ([SFSafariViewController class] != nil) {
        webBrowser = [[SFSafariViewController alloc] initWithURL:url];
    } else {
        webBrowser = [[ABCWebBrowserController alloc] initWithURL:url];
    }
    
    [self presentViewController:webBrowser animated:YES completion:nil];
    

提交回复
热议问题