我有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
,它会成功启动应用程序。
这里有什么线索?
答案 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(_:)