我现在已经回答了two个不同的questions,这两个问题都解释了VOIP应用 如何在启动时启动,但人们似乎认为他们这样做了。 / p>
我不是百分之百地确定自己,有人将我与part of the apple docs联系起来,这并没有真正提及应用程序的自动启动。
我原本是先前的知识和this answer,但在另一个人说他们这样做之后,我真的不确定。
据我所知,应用只对推送通知作出反应,并且在设备开启时无法启动到后台。
我们可以澄清是否可以自动启动应用程序?
答案 0 :(得分:29)
查看this document中的UIBackgroundModes部分 - 它似乎表明添加voip
密钥将在启动时自动启动应用程序。
修改:sample app似乎确认了此行为。
答案 1 :(得分:5)
我确认设置VOIP模式有效。但是,我发现应用程序在启动后不会重新启动,除非它在设备断电时运行。此外,应用程序实际上不会在最近通电的设备上重新启动,直到设备在加电后解锁。
答案 2 :(得分:3)
好的,我不知道这是否归类为答案,但我觉得有义务说。我正在开发一个既能跟踪重要位置变化又能提供VoIP功能的应用程序。该应用在必需的背景模式中有voip
键。我尝试了一些我想分享结果的案例:
启动时,应用程序在后台运行,以及之前运行的其他应用程序。我不认为这与 VoIP 有任何关系。
启动时,应用程序未运行,配置实用程序中没有日志,服务器表示用户未注册我无法从其他设备调用它;但是其他与voip或位置跟踪无关但在关闭前打开的应用程序至少会加载到内存中。意思是,voip
键不起作用。
我继续使用相同的应用进行测试,但这次是从应用商店下载的。结果是一样的。将设备和操作系统更改为iPhone 3G(产品名称:iPhone2,1)和iOS 6.1.6(10B500)。在调试和发布模式下都没有改变。
我告诉我的老板,Apple提供了这种行为,可以做到。然后我有了第二个想法并尝试过,现在我拼命想要找到另一种方式。打算向Apple致以问候。
答案 3 :(得分:2)
如果没有用户互动,您无法启动应用程序。用户必须在自定义链接上单击推送通知上的应用程序图标。可能还有其他我不知道的方法,但即使它们存在,也需要用户互动来有意启动应用程序。
修改强>
事实证明,正如Tim所说,VOIP应用程序可能有例外。
答案 4 :(得分:0)
重要的位置更改或区域监控也会导致应用程序在启动时启动,只要它打开并保持打开状态即可。不需要UIBackgroundModes键。
答案 5 :(得分:0)
我一直在开发VoIP应用程序,我可以确认,当iPhone重新启动时,只要用户在重启之前没有杀死它,VoIP应用程序就会自动启动。当仅运行iOS自动启动voip应用application:didFinishLaunchingWithOptions:
时,即applicationDidBecomeActive:
将无法运行。
我曾经怀疑iOS是否会在崩溃时自动重启voip应用程序。经过调查我发现iOS确实会自动重启voip应用程序,但如果它不断崩溃,iOS会在最终放弃之前尝试servals时间。
如果您从xcode检查iPhone控制台输出,您可以在第一次崩溃后看到这些日志
..
Service exited due to signal: Abort trap: xxx
Unable to get short BSD proc info for xxxx: No such process
Application 'UIKitApplication:xxxxx]' crashed.
...