Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新到iOS版本9.3.3后,重定向url以启动应用程序不工作_Ios_Swift_Swift2 - Fatal编程技术网

更新到iOS版本9.3.3后,重定向url以启动应用程序不工作

更新到iOS版本9.3.3后,重定向url以启动应用程序不工作,ios,swift,swift2,Ios,Swift,Swift2,在我的应用程序中,我有一个web视图,在其中加载登录屏幕(html页面)以进行身份验证(OAuth)。在身份验证成功后,我使用我将在响应中收到的自定义URI方案将流重定向到我的本机应用程序屏幕。在我升级到iOS版本9.3.3之前,这个设置以前一直在9.2.1版本的iPhone设备中运行。现在,我没有得到正确的重定向URL,而是得到一个错误弹出窗口,消息是“error:theURL不能显示” 我知道苹果发布的最新更新中发生了很多变化,尤其是在webkit上。还有其他人面临过类似的问题吗?这是新更新

在我的应用程序中,我有一个web视图,在其中加载登录屏幕(html页面)以进行身份验证(OAuth)。在身份验证成功后,我使用我将在响应中收到的自定义URI方案将流重定向到我的本机应用程序屏幕。在我升级到iOS版本9.3.3之前,这个设置以前一直在9.2.1版本的iPhone设备中运行。现在,我没有得到正确的重定向URL,而是得到一个错误弹出窗口,消息是“error:theURL不能显示”

我知道苹果发布的最新更新中发生了很多变化,尤其是在webkit上。还有其他人面临过类似的问题吗?这是新更新中的错误吗

如果有人能告诉我更新后重定向失败的原因,我将不胜感激


提前感谢

欢迎使用安全升级9.3.3深度链接

首先,你应该接受通用链接,忘记URL方案

检查此转换教程:

如果你不想使用通用链接

您使用哪种委托方法来获取Scheme调用?我猜您正在使用:

-(BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
在那种情况下。。。仔细检查您的URL方案中没有任何&、+、/,正在进行大量新编码,如果有,请将其转换为%encoding,这很好:

好:

坏的:

修复您的URL方案调用并完成它


开心点

我认为这是重复的,提问者似乎解决了这个问题。但答案有点模棱两可

因此,这里有一个具体的方法,至少可以解决我的环境(iOS 10.3设备和iOS 9.0&10.3模拟器)中的问题,我认为这个想法与上面的源代码相同,即响应html页面并在这个页面中重定向,如下所示

<html>
<head>
</head>
<body>
<script type="text/javascript">
    setTimeout(function () {
        window.location = "com.your.scheme://a/b?foo=bar";
    }, 1);
</script>
<h1>redirect...</h1>
</body>
</html>

setTimeout(函数(){
window.location=“com.your。scheme://a/b?foo=bar";
}, 1);
重新使用

这是一种非常有症状的处理方法(比如使用setTimeout),可能会被未来的iOS版本所阻止,但我在这里为那些出于某种原因仍然需要使用URL方案的人写了这篇文章

我也面临同样的问题。。你找到解决办法了吗?这里也一样。。。我将悬赏以获得正确答案。我正在使用应用程序(uApp:UIApplication,openURL url:NSURL,options options:[String:AnyObject])->BoolI在webview委托中获得错误的重定向url,错误代码为NSURERRORDOMANI 101,上面写着“无法显示url”。因此,根本不会调用appdelegate。URL方案不包含任何这些字符,类似于您上面描述的“Good”。嘿!你能试试appN吗ame://HELLO 看看能不能买到?您是否尝试过最终的解决方案,即通用链接?这是可行的,但问题是,我们从服务器重定向响应接收url。我们在以前的所有版本中都收到了它,但在iOS v9.3.3中没有。wenview委托未收到此url。
myAppSchemeName://abc&param=AppleIsTough
<html>
<head>
</head>
<body>
<script type="text/javascript">
    setTimeout(function () {
        window.location = "com.your.scheme://a/b?foo=bar";
    }, 1);
</script>
<h1>redirect...</h1>
</body>
</html>