如果没有 IOS 中的 VOIP,我如何让我的应用程序永远活着?
Posted
技术标签:
【中文标题】如果没有 IOS 中的 VOIP,我如何让我的应用程序永远活着?【英文标题】:How can I keep my app alive forever without VOIP in IOS? 【发布时间】:2014-12-09 07:17:17 【问题描述】:我的应用包含需要在后台运行的功能。该应用程序需要在后台监控加速度计,以便在检测到跌倒时发出通知。
我使用 VOIP 添加了“永远活着”功能,但我的应用被拒绝了。那么有没有其他方法可以永久在后台运行我的应用程序?
更新:
Apple 建议在我的代码中删除 VOIP 或添加更多 VOIP 功能。所以我阅读了一些教程来添加 VOIP 功能。
https://www.twilio.com/docs/client/ios
http://www.raywenderlich.com/29948/backgrounding-for-ios
但会感到困惑。所以请提供一些解决方案。以便我的应用程序被苹果接受。
【问题讨论】:
您提议的做法违反了 Apple 的政策。重新考虑您的应用概念,抱歉。 不可能。我得到了同样的问题。我在后台更新我的位置,并在后台模式下更新我的应用程序。如果您不断更新您的位置然后应用被拒绝,那么还有一件事。 它是安全应用程序,需要在后台运行。这是我的应用程序的主要功能。所以请建议任何其他方式。我可以使用位置更新程序吗?它被接受了吗? 重新阅读上面的 cmets - 你做不到。这违反了 App Store 政策。 我可以使用 VOIP 吗? @AshleyMills 【参考方案1】:你可以试试CocoaPods库KeepAppAliveForever
:
pod 'KeepAppAliveForever'
或thisgithub 存储库。
【讨论】:
【参考方案2】:https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/iPhoneAppProgrammingGuide.pdf
我发现这个网站下载了这个 pdf 并转到第 60 页并从那里阅读你的秘密隐藏,如果你很绝望,它需要一些阅读。哈哈。
阅读愉快。 :D 希望这对您有所帮助。
我做了一些代码研究
- (void) backgroundForever
backgroundTaskID = [application beginBackgroundTaskWithExpirationHandler:^
[self backgroundForever];
];
- (void) stopBackgroundTask
UIApplication *application = [UIApplication sharedApplication];
if(backgroundTaskID != -1)
[application endBackgroundTask:backgroundTaskID];
所以基本上我们在当前后台任务结束时启动一个新的后台任务。每当您想停止后台任务时,您都可以调用 stopBackgroundTask。这取决于您的应用程序逻辑,例如您可以在 applicationDidEnterForeground 中调用它。
它有效,但我不确定您的应用是否会通过 Apple 审核。
来自 AJTech
【讨论】:
我已经用过这段代码了。但它可以工作 10 分钟。 @AJ 科技以上是关于如果没有 IOS 中的 VOIP,我如何让我的应用程序永远活着?的主要内容,如果未能解决你的问题,请参考以下文章
即使应用程序未在后台运行,也可以自动打开应用程序的VoIP推送通知是否可以在iOS中使用?