【问题标题】:Showing a popup message when iOS app stops workingiOS 应用停止工作时显示弹出消息
【发布时间】:2015-09-01 05:01:02
【问题描述】:

这个问题与

有关

Why most iOS apps crashed without an alert window

我正在领导一个软件开发团队,我们正在开发一款移动应用程序,该应用程序目前针对 iOS 和 Android 移动设备。在 Android 中,当应用程序没有响应时,会显示一条弹出消息(请参阅下面 URL 中的屏幕截图)。

http://postimg.org/image/4hr48vf69/

Android 开发人员告诉我这是 Android 的内置功能,他没有编写任何代码来显示此消息。我们的 iOS 开发人员告诉我们,当 iOS 应用程序没有响应时,iOS 不会显示任何消息; iOS 关闭 App,控制直接回到手机主屏幕。此外,他不知道如何捕获该通知以显示类似的弹出消息。我们希望保持 Android 和 iOS 应用程序之间的功能一致性。有人可以帮助我了解如何在 iOS 上做到这一点。

感谢您的帮助。

马赫什


{2015 年 9 月 1 日编辑:根据给出的答案添加以下文本}

我查看了 Android Hyderabad RTC 应用程序(可在 Google Playstore 中获得),当它崩溃时,弹出窗口有两个按钮“报告”和“确定”

单击“确定”时,弹出窗口关闭,控制返回到 Android 应用程序崩溃时显示的屏幕。单击“报告”时,应用程序将打开邮件屏幕,用户可以在其中选择输入 cmets 并单击屏幕右上角的“发送”>“按钮。

单击“系统信息”时,在邮件屏幕中会显示一个报告,其中包含 - 包名称、版本、进程名称、时间、构建 ID、电话型号和品牌、系统日志、事件日志、异常类名称、源文件和类名、方法名、Full Stack trace 等。当用户在邮件屏幕上点击发送时,会发送报告,并显示弹出消息“谢谢您的反馈已发送”大约 5 到 8 秒,然后弹出窗口自动关闭。

我们希望在我们的 Android 和 iOS 应用中实现这种功能。

由于我无法为此编辑添加多个 URL,因此我发布了一个包含屏幕截图的图库。

http://postimg.org/gallery/3d6vrva1a/

感谢您的帮助〜马赫什

【问题讨论】:

  • 如果您的应用崩溃,您将没有足够的时间更新 UI。但是您可以在下一个会话中显示警报。您可以使用stop() 函数进行检查。
  • 为什么不尽量避免App无响应的情况
  • 我们不能让应用程序休眠以更新 UI 避免应用程序没有响应是最好的,但是如果应用程序崩溃我们希望向用户显示消息
  • 不,我们不能。因为iOS不会等待。当日志(崩溃报告)准备好时,系统会结束一切。即使是 android 应用程序也没有该功能,它是 android 系统会弹出一个窗口并询问用户是否想给应用程序时间,有时应用程序恢复状态(如果状态没有响应),否则它只会显示应用程序崩溃消息。 Apple 选择不显示弹出窗口
  • 苹果有这个功能,如果用户允许,所有的崩溃报告都会自动上传到itunes connect。您可以通过制作自己的系统来恢复应用程序的状态。 NSCoding 将在这里为您提供帮助。它就像一些照片编辑应用程序,您可以在其中创建多层效果并保存编辑。当您下次打开编辑时,所有图层都像您之前创建的那样存在。

标签: android ios objective-c user-interface


【解决方案1】:

这是由 android OS 生成的崩溃消息。 iOS 中没有生成这样的系统消息。所以,你不会在 iOS 中收到这种类型的任何消息。为了防止这种情况并避免被苹果商店拒绝,您必须检查应用程序崩溃的位置并找到合适的解决方案。

【讨论】:

  • 在我们的 iOS 开发人员的移动 iPhone 设备中,我们正在检查应用程序崩溃的位置,并试图找到合适的解决方案。但问题是,如果最终用户的 iPhone 上的 iOS 应用程序崩溃,我们希望让用户能够轻松地向我们报告问题。此外,我们希望用户知道应用程序崩溃而不是突然显示主屏幕 - Mahesh
  • 为此,您可以通过将应用程序活动记录到文本文件中并从您保存的位置检索该文件来完成解决方案。通过它,您可以分析应用程序崩溃的位置。请注意,当应用程序在 iOS AFAIK 中崩溃时,无法弹出窗口。
【解决方案2】:

Apple 选择不显示任何消息,原因可能是用户不必知道出了什么问题。所以基本上你对此无能为力。但是,这应该是它的开发人员通过检查 Xcode 中的崩溃日志或后端的崩溃报告工具来分析和修复它。

【讨论】:

  • Apple 选择不显示任何消息 - 我很惊讶。我认为任何系统都让程序员选择决定如何处理异常/错误是正常的。 “用户不必知道出了什么问题” 用户不必知道,但是如果给用户一个简单的方法来报告它,这将有助于我们的开发人员进行维护和调试/重现问题。在 Hyderabad RTC Android 应用程序中,有一个“报告”按钮(请参阅下面的屏幕截图)postimg.org/image/n7pem27ul我们想添加类似的功能 - Mahesh
  • Apple 可能认为这完全应该是开发人员的任务,但我能理解你的沮丧。在这一点上,我相信我们对此无能为力。
猜你喜欢
  • 1970-01-01
  • 2016-01-13
  • 2011-04-13
  • 1970-01-01
  • 2016-04-04
  • 2021-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多