如何在没有 openURL 方法的情况下使用 URL Scheme 在两个应用程序之间共享数据?
Posted
技术标签:
【中文标题】如何在没有 openURL 方法的情况下使用 URL Scheme 在两个应用程序之间共享数据?【英文标题】:How to use URL Scheme to share data between two apps without openURL method? 【发布时间】:2016-08-10 16:24:24 【问题描述】:我有 App A
和 App B
。在这里,我只想将text
数据从 A 共享到 B,为此我执行以下代码。
在 A 中:
UIApplication.sharedApplication().openURL(NSURL(string: "B://sample_text")!)
在乙:
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool
print(url)
return true
B 中的输出:B://sample_text
使用上面的代码,我可以将sample_text
数据从 A 发送到 B。但是 App B 正在打开,这是我不想要的。
我想共享相同的数据,当我将来手动启动 B 时,它应该会进入 B。
如果有除了openURL
以外的其他方法,请指教。
App Group 可以实现这一点,但它有一些限制,例如您只能在共享公共应用 ID 前缀的应用之间共享数据。
【问题讨论】:
Sharing data in between apps in ios的可能重复 @TejaNandamuri 不重复,因为我已经特别提到我想要通过 URL Scheme 和你放在这里的链接,它已经接受了我在提出问题之前已经知道的“App Group”概念的答案。不过还是谢谢你的交流。 :) 它仍然是重复的,因为该链接是解决您的问题的唯一方法(而且您没有提到您了解应用程序组)。您不能说我会调用 openURL 方法,但是它不应该打开。当然 URL 方案会调用 openURL 方法,现在有办法停止它。 也许你是对的,所以我编辑了我的问题。谢谢 【参考方案1】:您可能需要查看应用组以在两个应用之间共享数据,而不是使用 URL 方案共享数据。
一个例子可以在Sharing data in between apps in IOS找到。
另一种方法是将数据存储到后端服务器并从中读取。
【讨论】:
在应用程序组中存在限制,例如您只能在共享公共应用程序 ID 前缀的应用程序之间共享数据。所以我想通过自定义 URL 方案。 您是说在您的应用程序和某人开发的应用程序之间执行上述任务吗? @SunilTarge 这两个应用程序都是我开发的,但应用程序 ID 不同。 @Teja Nandamuri @SunilTarge 您是否在不同开发者帐户中的应用程序之间共享数据?如果不是,为什么 App ID 前缀对您来说是个问题? @Daniel 是的,我在不同开发者帐户中的应用程序之间共享数据(仅字符串)。所以只是想知道是否可以通过自定义 URL 方案来完成,但它应该被静默发送到第二个应用程序。以上是关于如何在没有 openURL 方法的情况下使用 URL Scheme 在两个应用程序之间共享数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有滚动行为的情况下转到特定部分/没有滚动行为的 scrollIntoView() 的任何替代方法?
通过调用 openURL 方法强制 safari 在同一选项卡中打开 url
选择器'application:openURL:options:sourceApplication:annotation'没有已知的类方法