2014-01-27 27 views
2

在我的应用程序中,我配置了自定义URL方案“TestScheme”。一切正常,但有一个问题。iOS中的自定义Url方案在第一次使用Url方案时未打开

当我打开例如Safari中的“TestScheme:// xyz”,有时会打开一个对话框,询问我是否想在应用程序中打开网站。当我打开时没有任何反应。当我再次在safari中打开相同的网站时,应用程序可以正常打开而不显示对话框。

有人可以解释这种奇怪的行为吗?当我在对话框中打开时,为什么不打开应用程序?

编辑:我没有得到这个问题,当重定向到HTML自定义URL方案与href。但只要在浏览器中输入网址,问题仍然存在。

+0

这种行为发生的内置iOS应用程序?或只是你的应用程序? –

+0

这只是我的应用程序 –

+0

我也面临着这样的问题。在我的情况下,我试图用一个客户urlscheme打开我的应用程序,有时它完全炒作。有时它只显示消息,没有任何反应。仍在试图弄清楚。 –

回答

0

由于您正在开发中,听起来好像每次编译和重新部署应用程序时,都需要时间注册系统。此外,部署后,您可能需要确保杀死Safari,以便加载自定义的Url方案。

只是我的两分钱。

+0

我不认为这是实际的问题,因为在URL方案之后更改内容时不仅仅是第一次进入自定义url方案时,对话框还会出现。 –

+0

您是否对应用中的info.plist进行了必要的修改? URL类型/ URL标识符/ URL方案... 单击取消时会发生什么?我遇到了一个问题,我单击该对话框上的取消,然后我需要刷新该页面,以便能够再次用相同的对话框提示。 – mircaea

+0

我们遇到同样的问题。重新创建我们只是强制关闭应用程序并尝试链接。 openURL中的处理程序永远不会被调用。链接只是启动应用程序,就像没有传入任何应用程序一样。如果应用程序处于打开状态,或者最近已打开应用程序,则它会处理得很好,并执行应有的操作。我也有这种情况发生在Android上......也许现在它是一件...仍在寻找答案。 –

0

如果应用程序从重新启动以来从未运行过,强制关闭或在某个时间点被操作系统看门狗杀死,那么我们唯一的办法就是在didFinishLaunchingWithOptions调用中处理并检查启动选项。我还没有在一个openURL教程,让我想起了这个跌倒...

你可以看到URL的启动选项,当你把一个小警告框的,因为我什么你得到的引擎盖下在发射偷看还没有弄清楚如何(或花时间弄清楚)如何挂钩调试器并通过链接启动应用程序。顺便说一句我现在正在使用iOS 7.1.2来测试它。

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Launch With Options" 
               message:[launchOptions description] 
               delegate:nil 
             cancelButtonTitle:@"OK" 
             otherButtonTitles:nil]; 
[alert show]; 
[alert release]; 

然后你可以看到发送了什么,并决定采取行动/解析它。

[讽刺的是我有同样的确切推出行为在Android解决的问题,以及...我想我需要解析摞的onCreate ...]