iOS - 从后台自动打开应用程序

del*_*oki 2 ios

是否有可能以某种方式从后台模式重新打开应用程序?例如,如果后台的应用程序正在检查服务器是否有某个标志,然后在触发时它会自动转到前台?

如果没有,我可以显示消息并播放声音,以便用户请求重新打开应用程序吗?

例如,WhatsApp如何实现这一目标?

Jam*_*ter 8

无法自动打开应用程序,这意味着将应用程序显示给用户.

但是,可以使用推送通知在后台打开您的应用程序,以便它可以执行短任务.这是通过使用字段创建推送通知来实现的content-available.

如果您的服务器在您的应用有新内容时向用户的设备发送推送通知,您可以要求系统在后台运行您的应用,以便它可以立即开始下载新内容.此背景模式的目的是最小化用户看到推送通知与您的应用程序能够显示关联内容之间经过的时间.应用程序通常会在用户看到通知的大致相同的时间唤醒,但仍然比您提供的时间更长.

要支持此后台模式,请从Xcode项目的"功能"选项卡的"后台模式"部分启用"远程通知"选项.(您还可以通过在应用程序的文件中包含UIBackgroundModes带有remote-notification值的键来启用此支持Info.plist.)

对于触发下载操作的推送通知,通知的有效负载必须包含内容可用密钥,其值设置为1.当存在该密钥时,系统会在后台唤醒应用程序(或将其启动到后台)并且调用app delegate的应用程序:didReceiveRemoteNotification:fetchCompletionHandler: method.您对该方法的实施应下载相关内容并将其集成到您的应用中.

下载任何内容时,建议您使用NSURLSession类来启动和管理下载.有关如何使用此类管理上载和下载任务的信息,请参阅URL加载系统编程指南.


我可以显示消息并播放声音,以便用户请求重新打开应用程序吗?

是的,您可以使用本地通知或推送通知

  • @uerceg,不,我认为不可能。 (2认同)