这是一个奇怪的问题,我需要创建一个在iOS设备上在后台运行的iOS应用程序,但在设备的主屏幕上无法显示。该应用可能需要显示在设置中以配置一些选项,但它主要需要在幕后运行。
我不需要在应用商店发布此应用,它严格来说是我公司的企业应用。
有谁知道如何实现这种行为?配置文件? API' S?等?
编辑:越狱设备对我们来说不是一个真正的选择。我们必须保持设备不变。
答案 0 :(得分:4)
<强> Backgrounding 强>
有几种方法可以永久执行背景:
a)JRG-Developer提到的无声音频
b)使用beginBackgroundTaskWithExpirationHandler +打开/关闭位置管理器(它会将剩余时间重置为600秒)
让app隐身
您可以在Info.plist中使用SBAppTags(请看一下:How to remove app icon programatically from jail broken iPhone app?)
它会使您的图标在主屏幕上不可见。
答案 1 :(得分: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设备,哪些支持多任务处理?
答案 2 :(得分:2)
两种方法:
越狱。越狱的iPhone本质上是一台Mac,你可以使用所有的Mac UNIX编程技巧 - 产生一个守护进程(你甚至可以让launchd这样做),或者什么。你可以设置enteprise-wise Cydia源码。请参考saurik的网站进行演练并使用Ubuntu设置实验服务器(也使用apt)
可能会采用非越狱方式,但这取决于您的应用正在做什么。您可以尝试使用企业级推送通知。
答案 3 :(得分:1)
鉴于在非越狱手机上无法做到这一点,我建议如下:
开发一个目录应用程序或电话列表应用程序,这是特定于贵公司的东西。
让它每天连接一次网络服务以注册设备ID(因此您知道用户尚未删除该应用)
告诉用户他们需要始终保持应用程序处于打开状态(如果用户的设备有一天没有注册,请向他们发送一封电子邮件,要求他们启动该应用程序。)
现在您可以使用该应用程序发回任何您想要的内容。如果他们杀了它,你会知道第二天你有一个脚本查看日志。
如果您认为这是一个糟糕的想法,那就是,但它是您现在最好的iOS版本。
编辑:您可以每天发送通知 - 例如在AM中 - 以确保用户在未运行的情况下打开该应用。
答案 4 :(得分:-2)
从我的经验来看,这种行为无法在iOS上实现。当应用程序进入后台时,它仅在很短的特定时间内处于活动状态。在那之后,它进入了hybernate状态。它停止工作。因此,如果不滥用iOS工作流程,就无法实现您所说的行为。这就是为什么有些人称iOS的多任务处理不是真正的多任务处理。只有越狱可能有助于你的情况。那是一个案例。在主屏幕上无法看到app的第二个也是不可能的。它必须在跳板上运行。