iOS10之前使用的方法是:
[[UIApplication sharedApplication] openURL:(要跳转的URL)];
举个🌰:[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.baidu.com"]];
iOS10之后使用的方法是:
[[UIApplication sharedApplication] openURL:(要跳转的URL) options:(一个字典参数) completionHandler:(判断成功失败的回调)]; iOS10的方法会异步执行,并在主队列中调用这个指定的 `completionHandler`回调。
如果只想简单的实现跳转到外部浏览器,🌰如下:
[[UIApplication sharedApplication] openURL: [NSURL URLWithString:@"http://www.baidu.com"] options: @{} completionHandler: nil];
有人会好奇,options这个字典是做什么用的呢?为什么传空呢?
UIApplication 的头文件中列了一个可用在 options字典中的key: UIApplicationOpenURLOptionUniversalLinksOnly:并且默认布尔值是NO,使用时需要设置为YES才生效。然而UIApplicationOpenURLOptionUniversalLinksOnly并不是跳转到Safari浏览器,而是只能打开应用里配置好的有效通用URL。简而言之:我设置一个微信的URL,但是微信压根没有配置这个URL或者禁止访问这个URL再或者我手机上没有微信App,则回调都会返回失败,也并不会跳转到外部浏览器。
想要尝试下的童鞋添加如下代码:
NSDictionary *options = @{UIApplicationOpenURLOptionUniversalLinksOnly : @YES};[[UIApplication sharedApplication] openURL: [NSURL URLWithString:@"http://www.baidu.com"] options: options completionHandler: nil];
所以,我们想要去实现跳转到外部浏览器,只要添加一个URL,把options设置为空字典形式,completionHandler设置为nil就可以完美实现啦。