iOS10之后openURL:方法过期之后的替代方法及使用

目前苹果为iOS10开放了一个key:UIApplicationOpenURLOptionUniversalLinksOnly但亲测无效

目前使用的是这个key:UIApplicationOpenURLOptionsSourceApplicationKey

iOS10 以后,canurl 与openurl合并一个 可以实现动态跳转不用配置

iOS10之后openURL:方法过期,

新方法如下:

options:@{UIApplicationOpenURLOptionsSourceApplicationKey : @YES} //参数是一个字典

[[UIApplication sharedApplication]openURL:[NSURL URLWithString:url] options:@{UIApplicationOpenURLOptionsSourceApplicationKey : @YES} completionHandler:^(BOOL success) {

//成功后的回调

if (!success) {

//失败后的回调

}

}];

demo:

[[UIApplication sharedApplication]openURL:[NSURL URLWithString:url] options:@{UIApplicationOpenURLOptionsSourceApplicationKey : @YES} completionHandler:^(BOOL success) {

if (!success) {

UIAlertController *aler = [UIAlertController alertControllerWithTitle:@"不能完成跳转" message:@"请确认App已经安装" preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"确定"style:UIAlertActionStyleCancel handler:nil];

[aler addAction:cancelAction];

[self  presentViewController:aler animated:YES completion:nil];

}else if(back){

[self dismissViewControllerAnimated:YES completion:nil];

}

}];

时间: 2025-02-01 14:56:36

iOS10之后openURL:方法过期之后的替代方法及使用的相关文章

jquery toggle 方法被废除的替代方法

今天使用 toggle 方法的时候,该方法一直不能生效. 原来jquery 的引入文件是1.9,该方法在1.8以上已被废除. 那么简单的切换状态,我们可使用if 语句进行代替 如下: 记录一开始设置隐藏(.none {display:none;}) 通过点击进行切换 //记录展开隐藏 $(function () { var flag = 1; $('.js-folder').click(function () { if (flag == 1) { $('.js-record').removeCl

AndroidOrientation Sensor(方向传感器),新的替代方法详解(安卓官方提供)

本文将带大家去解读下安卓官方关于方向传感器数据,提供的新方法.熟悉手机传感器开发的朋友对这段代码一定不会陌生吧. sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_NORMAL); sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_GRAVITY), 在高版本的安卓中,Sensor.T

JSP中 request.getRealPath("/xx/yy") 方法提示已经过时的替代方法

我们的JSP项目在上传文件时通常都需要获取目录在服务器上的绝对路径,request.getRealPath()方法显示已经过时,但是还是有替代方法的. HttpSession session = request.getSession(true);  //获取session // String path = request.getRealPath("/data/userfile/image");  //此方法已经过时 String path = session.getServletCon

全局监听SCREEN_ON和SCREEN_OFF的替代方法--监听屏幕解锁事件

在做一个程序的时候,需要时刻保持某一服务是启动的,因此想到了通过监听屏幕SCREEN_ON和SCREEN_OFF这两个action.奇怪的是,这两个action只能通过代码的形式注册,才能被监听到,使用AndroidManifest.xml 完全监听不到.查了一下,发现这是PowerManager那边在发这个广播的时候,做了限制,限制只能有register到代码中的receiver才能接收. view plain private void registerScreenActionReceiver

编写高质量代码改善C#程序的157个建议[为泛型指定初始值、使用委托声明、使用Lambda替代方法和匿名方法]

前言 泛型并不是C#语言一开始就带有的特性,而是在FCL2.0之后实现的新功能.基于泛型,我们得以将类型参数化,以便更大范围地进行代码复用.同时,它减少了泛型类及泛型方法中的转型,确保了类型安全.委托本身是一种引用类型,它保存的也是托管堆中对象的引用,只不过这个引用比较特殊,它是对方法的引用.事件本身也是委托,它是委托组,C#中提供了关键字event来对事件进行特别区分.一旦我们开始编写稍微复杂的C#代码,就肯定离不开泛型.委托和事件.本章将针对这三个方面进行说明. 本文已更新至http://w

Android中getDrawable和getColor过时的替代方法

版权声明:本文为博主原创文章,未经博主允许不得转载. 前言 Android SDK 升级到 23 之后,getDrawable和getColor方法提示过时. 解决方案 getResources().getColor 替换成 ContextCompat.getColor getResources().getDrawable 替换成 ContextCompat.getDrawable 例子如下: int colorInt = getResources().getColor(R.color.colo

request.getRealPath()的替代方法

request.getSession().getServletContect().getRealPath()得到站点的绝对地址 在Servlet 和Struts中还可以用 this.getServletContect().getRealPath("/"); this.getServlet().getServletContect().getRealPath("/"); ServletActionContext.getServletContext().getRealPa

php json_encode 替代方法 (亦可显示中文)

原文网址:http://justcoding.iteye.com/blog/974631 json_encode在ajax应用的开发里是必不可少的一个函数,但是json_encode的使用条件是比较苛刻的,需要在php 5.2.0以上并且需要PECL json在1.2.0以上才可以使用. 其实json_encode的替代方法在网上有很多,这里提供一个在php在线手册里看到的一个简单的函数,已经通过测试. function jsonEncode($var) { if (function_exist

FormsAuthentication.HashPasswordForStoringInConfigFile 的替代方法

由于项目中要和php对接,要将一段字符串生成md5(16位)验证码,在英文字符时,没有太大问题,但在遇到中文时,两边字条始终不一致. php是别人的项目,看不到源码,网上一查,估计是这样写的: <?php echo substr(md5("admin"),8,16); // 16位MD5加密 echo "<hr>"; echo md5("admin"); // 32位MD5加密 ?> 之前的 md5代如下(对md5没有过多