博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
作为UIApplication单例对象的方法 openURL方法的变化
阅读量:6584 次
发布时间:2019-06-24

本文共 1390 字,大约阅读时间需要 4 分钟。

     作为UIApplication单例对象的方法 openURL: 在iOS开发中经常用来实现在当前应用打开外部链接的需求比如跳转到其他应用,跳转应用隐私设置界面;还有相关API canOpenURL: 进行跳转前判断.而这个古老(iOS2时出现)的 openURL 方法将被现今iOS10出现的新API openURL:options:completionHandler: 所替代.

虽然关于该API的官方文档补充完全,但所提供的信息足够能让开发者简单了解使用最新API打开外部链接的API究有何异同.

新API的官方描述

首先来看官方文档对iOS10的  UIKit部分对新API的描述

The new UIApplication method openURL:options:completionHandler:, which is executed asynchronously and calls the specified completion handler on the main queue (this method replaces openURL:).

这段话清楚地指明了新API的两个特点:异步执行open操作和主线程执行回调.

新API的代码描述

接下来再看看具体的接口代码,可以看出判断链接打开是否成功的方式也从以前的根据 openURL 调用return的布尔值变成了查询completion的success参数;

 

 
// old - (BOOL)openURL:(NSURL*)url // new - (void)openURL:(NSURL*)url options:(NSDictionary
*)options completionHandler:(void (^ __nullable)(BOOL success))completion

 

并且额外地提供了一个用来URL处理的options字典参数,没有限定值时就要传空字典,就像下方代码一样调用.

 

 
[[UIApplication sharedApplication] openURL:URL options:@{} completionHandler:nil]; options目前可传入参数Key在UIApplication头文件只有一个:UIApplicationOpenURLOptionUniversalLinksOnly,其对应的Value为布尔值,默认为False. 如该Key对应的Value为True,那么打开所传入的Universal Link时,只允许通过这个Link所代表的iOS应用跳转的方式打开这个链接,否则就会返回success为false, 也就是说只有安装了Link所对应的App的情况下才能打开这个Universal Link,而不是通过启动Safari方式打开这个Link的代表的网站.
[application openURL:URL options:@{
UIApplicationOpenURLOptionUniversalLinksOnly : @YES} completionHandler:nil];

转载于:https://www.cnblogs.com/seeworld/p/6159095.html

你可能感兴趣的文章
Oracle推断值为非数字
查看>>
多年前写的一个ASP.NET网站管理系统,到现在有些公司在用
查看>>
vue-cli中理不清的assetsSubDirectory 和 assetsPublicPath
查看>>
五年 Web 开发者 star 的 github 整理说明
查看>>
Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo
查看>>
中台之上(五):业务架构和中台的难点,都是需要反复锤炼出标准模型
查看>>
React Native 0.20官方入门教程
查看>>
JSON for Modern C++ 3.6.0 发布
查看>>
我的友情链接
查看>>
监听在微信中打开页面时的自带返回按钮事件
查看>>
第一个php页面
查看>>
世界各国EMC认证大全
查看>>
最优化问题中黄金分割法的代码
查看>>
在JS中使用Ajax
查看>>
Jolt大奖获奖图书
查看>>
ubuntu 16.04 安装PhpMyAdmin
查看>>
设置分录行按钮监听事件
查看>>
23种设计模式(1):单例模式
查看>>
socket 编程入门教程(五)UDP原理:4、“有连接”的UDP
查看>>
Jquery获取iframe中的元素
查看>>