【发布时间】:2017-12-25 12:10:45
【问题描述】:
我有 2 个iOS 应用程序,使用URL Scheme 我可以打开应用程序B 到A,就像我在B 中创建URL Scheme 并使用OpenURL 从应用程序@987654328 调用它一样@。另外,我可以传递数据。
但我正在寻找的是,有没有办法在某些特定事件上回到应用程序A。
在B 中,我在sourceApplication 中获得了有关A 的所有详细信息,但是如何返回?
我们是否需要为这两个应用程序创建URL Scheme 以便相互通信?或者有什么方法可以调用sourceApplication 并返回?
问题 1
如果是Facebook SDK,,我会为我的应用程序创建URL Scheme,因为一旦完成身份验证,我希望Facebook SDK 正确调用我的应用程序,但我没有在Facebook SDK 信息中注册我的应用程序scheme。列表。它是如何工作的?
问题 2
我在模拟器和设备上都试过了。如果我打电话给canOpenURL 它会给我一个错误
-canOpenURL:URL 失败:“openb://” - 错误:“此应用不允许查询方案 openb”
但如果我直接调用UIApplication.shared.open,它会成功启动应用程序。
这里有线索吗?
【问题讨论】:
-
使用其他 URL 方案?
-
您的意思是在这种情况下我们必须为两个应用注册
URL Scheme才能相互通信? -
是的,每个应用都有一个 URL 方案,因此它们可以相互调用。
-
您的意思是
URL Scheme既适用于A又适用于B。但是当我从A调用B时,我们可以退回到关于sourceApplication的所有详细信息吗?Facebook iOS SDK也一样,那么他们是如何实现的呢?有什么想法吗? -
我的意思是每个都有自己的 URL 方案,所以你可以调用它。有一段时间没有使用 Facebook SDK,但上次我使用了该方法,并且您需要添加一个包含您的应用程序 ID 的 URL 方案才能返回您的应用程序(在 Facebook SDK 实际打开 Facebook 的情况下) app — IIRC 现在它尽可能使用 SFSafariViewController)。
标签: ios url-scheme