【问题标题】:How to launch an APP in background in iOS 6.x silently如何在 iOS 6.x 中以静默方式在后台启动 APP
【发布时间】:2013-02-06 14:57:44
【问题描述】:

我们想在 iPhone 中静默启动一个 APP,而不要将这个 APP 带到前台。在 iOS 5.x 中,我们通过以下代码实现了这个目标:

    [(SBApplication*)app setDisplaySetting:0x4 flag:NO];
    [(SBDisplayStack*)displayStack pushDisplay:app];
    [(SBDisplayStack*)displayStack popDisplay:app];

但是,在 iOS 6.x 中不再有 SBDisplayStack。我做了一些搜索,但没有找到任何答案。有人说 SBWorkSpace 取代了 iOS 6.x 中的 SBDisplayStack。我们使用 SBAppToAppWorkspaceTransaction 来实现,但总是将 APP 带到前台,这并没有达到我们的目标。

有人可以帮助我吗?谢谢!

【问题讨论】:

  • 你的应用在 appstore 上吗? (iOS5.x版本)
  • @NikitaP:该应用无法在 App Store 上架,因为 SBDisplayStack 类是私有的。
  • 这是一个越狱应用

标签: objective-c ios6 jailbreak launch


【解决方案1】:

您可以使用 SpringBoardServices 私有框架中的 SBSLaunchApplicationWithIdentifier() 函数。它需要一个suspended 参数:

SBSLaunchApplicationWithIdentifier(CFSTR("com.company.app"), TRUE);

您还需要com.apple.springboard.launchapplications 授权。

【讨论】:

  • :你说的方法我试过了。我需要APP运行后台,所以我设置了suspended=NO,这个设置又把APP带到了前台。还有其他想法吗?
  • @Cabrite11 背景 == 暂停。我写 TRUEnot FALSE 并非巧合。不要无知(或者修改高中数学)。
  • 也许在您看来背景 == 已暂停。但是因为我知道有 APP 进入后台而不暂停(例如,哪些是实现 (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void(^)(void))handler NS_AVAILABLE_IOS(4_0);) 也许你应该修改你的小学数学
  • @Cabrite11 1. 他们不会“进入后台而不暂停”,2. 仅在尝试适当的代码后抱怨。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-12
  • 2019-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多