4

这很奇怪,我需要创建一个 iOS 应用程序,它在 iOS 设备的后台运行,但在设备的主屏幕上不可见。该应用程序可能需要显示在“设置”中以配置一些选项,但它主要需要在幕后运行。

我不需要在应用商店发布这个应用程序,它严格来说是我公司的企业应用程序。

有谁知道如何实现这种行为?配置文件?蜜蜂?ETC?

编辑:越狱设备对我们来说并不是一个真正的选择。我们必须保持设备原样。

4

5 回答 5

4

背景

有几种方法可以获得永久的后台执行:

a) JRG-Developer 提到的静音音频

b) 使用 beginBackgroundTaskWithExpirationHandler + 打开/关闭位置管理器(它将剩余时间重置为 600 秒)

使应用程序不可见

您可以在 Info.plist 中使用 SBAppTags(看看这个:如何以编程方式从越狱的 iPhone 应用程序中删除应用程序图标?

它会使您的图标在主屏幕上不可见。

于 2013-06-06T00:59:36.353 回答
3

我不知道如何处理这些not be visible on the home screen标准,但有些服务可以在后台连续运行,特别是:

  • 背景音频(甚至是无声音频)

虽然这确实非常hacky,但没有越狱设备,这可能是您最好的选择。

虽然通过审核过程不太可能/非常困难,但如果出于某种原因您确实需要(尝试)将此应用程序发布到 App Store,某些应用程序甚至可以在 App Store 上使用,这些应用程序利用了这个 hack ,例如PasteBot

你绝对应该在这里阅读他们关于让他们的应用程序的剪切和粘贴功能在后台工作的文章:

http://tapbots.com/blog/pastebot/pastebot-music-in-background

另一个开箱即用的想法,为什么不使用支持多任​​务处理的 Android 设备呢?

于 2013-06-05T22:50:25.110 回答
2

两种方法:

  1. 越狱。越狱的 iPhone 本质上是一台 Mac,您可以使用所有 Mac UNIX 编程技巧 - 生成一个守护进程(您甚至可以要求 launchd 执行此操作)或其他什么。您可以设置企业级 Cydia 源。请参阅 saurik 的网站以获取演练并使用 Ubuntu 设置实验服务器(也使用 apt)

  2. 非越狱方式可能是可能的,但这取决于您的应用程序在做什么。您可以尝试使用企业级推送通知。

于 2013-06-05T21:37:39.323 回答
1

鉴于这在非越狱手机上是不可能的,我建议如下:

  • 开发一个目录应用程序或电话列表应用程序,这是您公司特有的。

  • 让它每天连接到网络服务一次以注册设备 ID(这样您就知道用户没有删除该应用程序)

  • 告诉用户他们需要始终保持应用程序打开(如果用户的设备有一天没有注册,请向他们发送一封电子邮件,要求他们启动应用程序)。

现在,您可以使用该应用程序发回您想要的任何内容。如果他们杀了它,第二天当你有一个脚本查看日志时你就会知道。

如果您认为这是一个糟糕的想法,那么它是,但它是您现在在 iOS 上将获得的最好的。

编辑:您可以每天发送通知 - 比如在上午 - 以确保用户打开应用程序(如果它没有运行)。

于 2013-06-05T21:24:51.130 回答
-2

根据我的经验,这种行为在 iOS 上是无法实现的。当应用程序进入后台时,它仅在一小段特定时间内处于活动状态。之后,它进入休眠状态。它停止工作。因此,如果不滥用 iOS 工作流程,就无法实现您所说的行为。这就是为什么有些人将 iOS 的多任务处理称为不是真正的多任务处理。只有越狱可能会帮助您解决问题。那是一个案例。无法在主屏幕上看到应用程序的第二个再次是不可能的。它必须在跳板上才能运行。

于 2013-06-05T21:25:57.190 回答