一旦计时器用完,有没有办法将我的应用程序带到前台?这是一个信息亭类型的应用程序,它将在用户会话期间的不同点显示一些信息。
这适用于仅安装在我们的企业设备上的应用程序,因此不会提交给 Apple 审批。我也愿意探索越狱选项。
我很感激你们可以提供的任何帮助/提示。谢谢。
是的,从技术上讲,您可以使用 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
将您带回前台。
将您的应用程序带到前台的越狱选项:
使用 MobileSubstrate 连接到 SpringBoard。您可以找到具有良好名称的类和方法,例如[SBApplicationIcon launch]
和[SBApplication launch]
。另一种可能性是使用SBSLaunchApplicationWithIdentifier()
SpringBoardServices 私有框架。
暂停应用程序的选项:
您很可能可以通过使用 MobileSubstrate 让 SpringBoard 为您关闭特定应用程序来再次执行此操作。[SBUIController handleMenuTap]
也许您可以通过调用或类似的方式模拟主页按钮单击。