iOS 9 之后推出了SFSafariViewController
可以實(shí)現(xiàn)與Safari對(duì)接。
使用場景:
當(dāng)APP中需要使用Safari打開的URL夜惭∫鲈睿可以使用SFSafariViewController
在當(dāng)前APP打開。如果跳轉(zhuǎn)至Safari也可以接著繼續(xù)訪問诈茧。
官方描述:
An object that provides a visible standard interface for browsing the web.
代碼實(shí)現(xiàn):
// 導(dǎo)入 SafariServices.framework
#import <SafariServices/SafariServices.h>
- (void)buttonAction {
NSURL *URL = [NSURL URLWithString:@"https://apple.com"];
SFSafariViewController *safariVC = [[SFSafariViewController alloc] initWithURL:URL];
safariVC.delegate = self;
[self presentViewController:safariVC animated:YES completion:^{
}];
}
// 點(diǎn)擊分享按鈕
- (NSArray<UIActivity *> *)safariViewController:(SFSafariViewController *)controller activityItemsForURL:(NSURL *)URL title:(nullable NSString *)title {
return @[];
}
// 屏蔽某些分享按鈕
- (NSArray<UIActivityType> *)safariViewController:(SFSafariViewController *)controller excludedActivityTypesForURL:(NSURL *)URL title:(nullable NSString *)title API_AVAILABLE(ios(11.0)) {
return @[];
}
// 銷毀controller
- (void)safariViewControllerDidFinish:(SFSafariViewController *)controller {
}
// 頁面加載完成产喉。只有初始URL加載完成時(shí)會(huì)調(diào)用。
- (void)safariViewController:(SFSafariViewController *)controller didCompleteInitialLoad:(BOOL)didLoadSuccessfully {
}
// 開始加載
- (void)safariViewController:(SFSafariViewController *)controller initialLoadDidRedirectToURL:(NSURL *)URL API_AVAILABLE(ios(11.0)) {
}
截圖Simulator Screen.png