【问题标题】:How to open an application from background ios如何从后台ios打开应用程序
【发布时间】:2017-02-03 08:38:31
【问题描述】:

是否可以在iOS中将后台应用程序打开到前台?

我有一个场景,如果假设我的应用程序在后台,那么一段时间后我需要以编程方式将应用程序提升到前台。 有可能吗?

我不需要在 Appstore 中上传应用程序。

【问题讨论】:

  • 我认为苹果不允许你这样做。\
  • @Vineesh,请参考link

标签: ios objective-c swift background


【解决方案1】:

是的,有可能。

您可以使用推送通知或本地通知按不同类型的标准唤醒您的应用。 通过使用推送通知远程。通过日历警报、基于位置的触发器或任务警报在本地进行。

用户可以为你的应用配置并完成通知的开启,在这种情况下是不可能的。

在此处查看 Apple 的介绍。 https://developer.apple.com/notifications/

【讨论】:

  • 除了Pushnotification还有什么方法可以打开?
【解决方案2】:

据我所知,iOS 不提供打开应用程序的方法。您可以继续长时间运行的任务,同时在后台伺机获取内容,提醒用户在需要时重新打开您的应用,并在需要时通过静默推送通知提示前两个。

【讨论】:

  • 后台抓取任务可以运行很长时间(5小时)。不下载内容。可以长时间查看Wifi状态吗?
  • 您有最多 3 分钟的后台执行时间。您通常应该使用某个事件或从 didEnterBackground 委托方法运行您的后台任务。如果您使用后台获取,那么 iOS 将定期调用 fetchNewDataWithCompletionHandler。您无法控制 iOS 调用此方法的频率,但它会使用您提供给完成处理程序的值来调整其行为
  • 正如您所说,但是,据我所知,后台获取并不是一项长期运行的任务。它会在一段时间后杀死。
  • 确保长时间运行的任务会耗尽您的电池使用网络数据(donc 这是一种优化机制)
【解决方案3】:

您无法在没有用户操作的情况下在您的 ios 设备中启动您的应用,因为它受到 Apple 的限制, 现在你可以使用 backgroundfetch 在后台打开你的应用程序来做一些网络通话或你想要的东西,但它被限制在不到一分钟的时间内,最多持续 30 秒,在此期间你的网络请求应该完成并且所有长时间的任务都安排好了,即使在后台影响期间,您也可以通过在主线程上发布通知来更新您的 UI。

【讨论】:

  • 但是,Facebook 正在打开 Messenger 应用程序。
  • 即在用户点击时调用app URL(messanger URL)
  • 您可以安排本地通知以通知打开应用程序,但无法通过计时器以编程方式启动应用程序。但通知用户只需点击一下即可离开应用程序
  • @VineeshTP 检查评论
  • 明白了。不幸的是,我需要从后台状态以编程方式取消应用程序
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-01
  • 1970-01-01
  • 2017-01-26
  • 2016-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多