iOS-超简单跳转到外部浏览器之openURL在iOS10前后使用方法(并解决跳转无反应问题)

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就可以完美实现啦。

注意:有的童鞋明明已经写好了,但是点击木有反应、抓心挠肝的想只是一行代码而已啊。那么请检查你的URL是否带有http或https开头,比如只写一个www.baidu.com是不会跳转到Safari的百度页的,改成http://www.baidu.com则会嗖的一下完美跳转,sky~


记得、按时吃饭哦!

你可能感兴趣的:(iOS-超简单跳转到外部浏览器之openURL在iOS10前后使用方法(并解决跳转无反应问题))