如何在后台将一个 iOS 应用程序的 NSString 对象的值更改为另一个 iOS 应用程序?

Posted

技术标签:

【中文标题】如何在后台将一个 iOS 应用程序的 NSString 对象的值更改为另一个 iOS 应用程序?【英文标题】:How to change value of NSString object of one iOS application into another iOS application in background? 【发布时间】:2014-07-21 06:14:30 【问题描述】:

我想知道如何在后台的另一个 ios 应用程序中更改一个 NSString 对象的值?我已经在谷歌上搜索过,但我得到了他/她建议自定义 URL 方案的答案。但我想在后台将一个 iOS 应用程序的 NSString 对象值更改为另一个 iOS 应用程序(由第一个应用程序使用 NSURL 打开)。

我的问题场景是有两个应用程序'A'和'B','A'包含一个名为'string'的NSString对象。应用程序“A”使用自定义 URL 方案打开应用程序“B”,我在调用 Web 服务的应用程序“B”中执行了一些操作。当 Web 服务被调用时,如果我按下主页按钮,则在 Web 服务响应之前,应用程序“B”进入后台,但我也使用了一些处理后台响应的代码。 我只想更改当应用程序“B”在后台响应时,应用程序“A”的“字符串”对象的值。

【问题讨论】:

你必须使用 Applcation B 的 API 来获取/设置里面的数据。 我必须将“A”的“字符串”变量的值更改为应用程序“B” 如果两个应用程序都由同一供应商发布,则共享粘贴板可能是您的另一种选择。 @Jonah 我正在使用粘贴板,我希望这能解决我的问题。让我检查一下整个场景,然后我会尽快回复您。' @Jonah 它在模拟器和 iPod touch (iOS 5.1.1) 上工作。但不适用于 iPhone 4 (iOS 7.0.3)。再告诉我一件事 这安全吗?因为我的应用程序包含一些敏感信息。 【参考方案1】:

无法访问其他应用的数据。苹果不允许这样的事情。 URL Scheme 将是唯一的答案。

【讨论】:

我们可以在后台从另一个 iOS 应用程序启动一个 iOS 应用程序吗? 不,这是不可能的。有几个工作允许在后台进行,例如位置服务。正在启动的应用不在列表中。【参考方案2】:

如果你保留一个数据库,或者你的应用程序从 web 服务(非本地)获取数据,这可能是可能的。 如果 2 个应用程序从同一个数据库中获取数据,则取决于您想要的数据,您也可以获取和操作数据

【讨论】:

【参考方案3】:

最后我找到了这个问题的解决方案,我必须将一个字符串从一个 iOS 应用程序发送到另一个应用程序,并且我使用NSPasteboard 成功地做到了。

【讨论】:

以上是关于如何在后台将一个 iOS 应用程序的 NSString 对象的值更改为另一个 iOS 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 4 中在后台播放多个音频文件?

如何将应用程序放在后台并返回到前台(watchOS和iOS)?

iOS:关闭应用程序时如何在后台运行代码?

iOS 如何在后台录制音频?

如何在 ios 中永远运行后台服务以同步数据

如何在后台为ios音频文件运行Phonegap应用程序