2

一旦计时器用完,有没有办法将我的应用程序带到前台?这是一个信息亭类型的应用程序,它将在用户会话期间的不同点显示一些信息。

这适用于仅安装在我们的企业设备上的应用程序,因此不会提交给 Apple 审批。我也愿意探索越狱选项。

我很感激你们可以提供的任何帮助/提示。谢谢。

4

2 回答 2

3

是的,从技术上讲,您可以使用 Xcode 进行越狱开发(但您不必这样做)。如果您希望您的应用程序安装在普通沙箱之外,并且在/Applications/中,那么您将使用 Xcode 构建而不使用代码签名、伪造代码签名(或使用自签名证书),然后将应用程序复制/安装到您的设备,使用scp或类似的东西(也许有一个脚本)。

您也可以在“Theos”、“Logos”或“iOSOpenDev”等工具上进行谷歌搜索。 更多在这里

此外,有关使用 Xcode 进行虚假代码签名的信息,请参阅此页面

在将应用程序带到前台方面,至少有两种方法可以处理:

一种是使用 Cydia 安装(免费)实用程序open。使用,您可以使用其捆绑 ID(例如)open发出命令行调用以打开任何应用程序。如果您想以编程方式执行此操作,请在调用open com.mycompany.MyAppName中发出该命令:system()

 #import <stdlib.h>

 int returnCode = system("/usr/bin/open com.mycompany.MyAppName");

另一种选择是通过@WrightsCS 查看这个答案。确保也阅读评论,了解它的去向。


更新:就将您的应用程序置于后台而言,您可以使用exit(0)或完全终止您的应用程序[[UIApplication sharedApplication] terminateWithSuccess]。或者,请参阅此答案以获取以编程方式模拟主页按钮按下的解决方案,这会将应用程序发送到后台而不杀死它。

您将无法使用NSTimer,因为当您的应用程序处于后台时,计时器不会触发。但是,您可以使用 GCD来运行您的后台工作,并system()调用 withopen将您带回前台。

看到这个答案,可能一直滚动到他的帖子底部

或查看这个类似的答案,该答案实际上发布在问题的底部

于 2012-07-29T21:17:08.597 回答
1

将您的应用程序带到前台的越狱选项:

使用 MobileSubstrate 连接到 SpringBoard。您可以找到具有良好名称的类和方法,例如[SBApplicationIcon launch][SBApplication launch]。另一种可能性是使用SBSLaunchApplicationWithIdentifier()SpringBoardServices 私有框架。

暂停应用程序的选项:

您很可能可以通过使用 MobileSubstrate 让 SpringBoard 为您关闭特定应用程序来再次执行此操作。[SBUIController handleMenuTap]也许您可以通过调用或类似的方式模拟主页按钮单击。

于 2012-08-11T08:43:27.483 回答