一旦计时器用完,有没有办法将我的应用程序带到前台?这适用于自助服务终端类型的应用程序,它会在用户会话期间的各个点显示一些信息。
这适用于仅在我们的企业设备上安装的应用,因此不会提交给Apple批准。我也开始探索越狱选择。
我很感激你们可以提供的任何帮助/提示。谢谢。
答案 0 :(得分:3)
是的,您可以在技术上使用Xcode进行越狱开发(但您不必)。如果您希望将应用安装在普通沙箱之外,并且在 / Applications / 中,那么您需要使用Xcode 进行构建,无需代码签名,伪代码签名(或使用自签名证书),然后使用scp
或类似的东西(可能有一个脚本)将应用程序复制/安装到您的设备。
您也可以搜索“Theos”,“Logos”或“iOSOpenDev”等工具。 More here
另请参阅this page for information about fake code signing with Xcode。
在将应用程序带到前台方面,至少有几种方法可以解决这个问题:
一种方法是使用Cydia安装(免费)实用程序open
。使用open
,您可以使用其捆绑ID(例如open com.mycompany.MyAppName
)发出命令行调用以打开任何应用。如果要以编程方式执行此操作,请在system()
调用中发出该命令:
#import <stdlib.h>
int returnCode = system("/usr/bin/open com.mycompany.MyAppName");
另一种选择是to see this answer by @WrightsCS。请务必阅读评论,了解其发展方向。
更新,您可以使用exit(0)
或[[UIApplication sharedApplication] terminateWithSuccess]
完全终止您的应用。或者,see this answer for a solution to programmatically simulate a home button press,它会将应用程序发送到后台而不会将其删除。
您将无法使用NSTimer
,因为在您的应用处于后台时,定时器不会触发。但是,您可以使用GCD 块来运行后台工作,并使用system()
进行open
调用,以便将您带回前台。
See this answer, probably scrolling all the way to the bottom of his post
or look at this similar answer, which was actually posted at the bottom of the question
答案 1 :(得分:1)
将您的应用程序带到前台的越狱选项:
使用MobileSubstrate连接到SpringBoard。您可以找到具有前景的名称的类和方法,例如[SBApplicationIcon launch]
和[SBApplication launch]
。另一种可能性是使用SpringBoardServices私有框架中的SBSLaunchApplicationWithIdentifier()
。
暂停应用的选项:
您最有可能通过使用MobileSubstrate使SpringBoard为您关闭特定应用程序再次执行此操作。也许您可以通过调用[SBUIController handleMenuTap]
或类似的东西来模拟主页按钮点击。