一般情况下,在iOS中一般都会使用UIWebView或WKWebView(8.0+)来在app内打开网址,但也有一些特殊需求,需要使用类似于Safari的浏览器框架来打开网页,在iOS9之后,苹果推出了SFSafariViewController。
SFSafariViewController
SFSafariViewController继承自UIViewController,可在当前App使用Safari的UI框架展现Web内容,同时还能享受到Safari的一些便利特性,在app内使用Safari框架,还能使用Cookie,共享证书,比以前直接用openURL打开sarifi而产生的体验分割,有明显的优势。
NSURL *url = [NSURL URLWithString:@"https://www.baidu.com/"];
SFSafariViewController *safariVC = [[SFSafariViewController alloc] initWithURL:url];
[self showViewController:safariVC sender:nil];
- (NSArray<UIActivity *> *)safariViewController:(SFSafariViewController *)controller activityItemsForURL:(NSURL *)URL title:(nullable NSString *)title;//可以自定义一些分享
- (void)safariViewControllerDidFinish:(SFSafariViewController *)controller;//点击键盘确认按钮
- (void)safariViewController:(SFSafariViewController *)controller didCompleteInitialLoad:(BOOL)didLoadSuccessfully;