URL方案iOS |程序开源应用程序

时间:2017-12-25 12:10:45

标签: ios url-scheme

我有2个iOS个应用,使用URL Scheme我可以通过B打开应用A,就像我在URL Scheme创建B一样并使用OpenURL从应用B调用它。此外,我能够传递数据。

但我正在寻找的是,有一种方法可以回到某个特定事件的应用程序A

B我在[{1}}中获取有关A的所有详细信息但是如何退回?

我们是否需要为这两个应用创建sourceApplication以便相互通信?或者有没有办法调用URL Scheme然后回去?

第1期

如果sourceApplication我为我的应用创建了Facebook SDK,,因为一旦身份验证完成,我希望URL Scheme正确调用我的应用,但我没有注册我的应用{在Facebook SDK info.plist中{1}}。它是如何工作的?

第2期 我已经尝试过模拟器和设备。如果我致电scheme,则会给我一个错误

  

-canOpenURL:网址失败:" openb://" - 错误:"此应用程序不允许查询方案openb"

但如果我直接调用Facebook SDK,它会成功启动应用程序。

这里有什么线索?

1 个答案:

答案 0 :(得分:1)

如果您想从另一个iOS应用iOS调用URL Scheme应用,那就是方法。 URL方案允许您通过您定义的协议与其他应用程序通信。要与实现此类方案的应用程序通信,您必须创建格式正确的URL并要求系统打开它。要实现对自定义方案的支持,您必须声明对方案的支持并处理使用该方案的传入URL。

  

如何移回或打开sourceApplication?

要实现这一点,您必须为两个应用程序创建URL Scheme

  

问题1和2

在iOS 8之前,每个人都在使用canOpenURL检查是否存在此URL,以及是否openURL用于调用应用程序。但是,当很少有开发人员/应用程序开始使用它来跟踪用户iPhone(所有应用程序安装的内容)以用于广告目的等时,就会出现问题。这就是Apple提出称为URL Scheme Whitelist的解决方案的原因。

因此,如果您要使用canOpenURL,则必须将URL Scheme列入白名单,否则会出现error: This app is not allowed to query for scheme之类的错误,并且如果您要打开应用程序请使用{直接{1}}

是的,它打破了很多SDK的登录流程,但这很有意义。

有关详细信息,请canOpenURL(_:)