在 iOS 中显示视图而不是默认通知

Posted

技术标签:

【中文标题】在 iOS 中显示视图而不是默认通知【英文标题】:Show view instead default notification in iOS 【发布时间】:2019-03-25 15:55:05 【问题描述】:

我使用 Firebase 开发了一款适用于 android 的应用程序,它的作用类似于多重身份验证、用户登录并在智能手机上收到一个要求确认的对话框。

我正在 iPhone 上开发类似的应用程序,也使用 Firebase。 我能够在 iPhone 中收到通知(从 Firebase 控制台发送),但是我对此有些怀疑。

在我的 android 应用程序中,我实现了它,以便在收到通知时不显示默认通知,而是显示带有是/否按钮的视图。

ios 中,我看到的所有教程都需要用户先“单击”顶部栏上的通知,以便您可以交互然后打开视图...

所以我的问题(我是 iOS 开发新手)基本上是:

是否可以不显示通知(在顶部栏)并直接打开视图?

用户在注册时,需要读取二维码,然后发送通知到服务器,然后服务器返回一个带有成功/失败的通知答案,如果服务器回答,我可以选择显示“无”(无默认通知)?我不是指静默通知,因为它们没有被优先考虑。

服务器使用自定义 json 应答,但我在某处读到 iOS 中的通知应该有特定格式?

这些基本上是我的问题,我知道它们有点基础,但我发现的大多数教程都是来自旧 iOS 版本,所以我很困惑。

【问题讨论】:

【参考方案1】:

我假设您正在谈论来自 Apple 推送通知服务 (APNS) 的通知。 按顺序回答您的问题:

    是否可以不显示通知(在顶部栏)并直接打开视图?

您无法更改系统范围推送通知的默认样式。用户甚至可以随时禁用您的应用程序的通知。但是,您可以发送Actionable Notification 并以这种方式执行“是/否”决定,而无需打开应用程序本身。这可能与您想要的结果最相似。

    我可以在不显示视图的情况下发送通知吗?

Silent Notifications 很可能是您的最佳选择,如果您不想在登录请求后不断询问您的服务器。有关 APNS 可靠性的更多信息,请阅读here。

您还应该考虑:如果您的应用在收到通知时打开,则不会显示系统范围的通知视图,无论此通知是否静默。

    是否有特定的通知格式?

需要以documented here 的格式发送通知。 如果您无法在推送通知本身中发送所有相关的 json,则可以改为发送一个 url 或标志,指示您的应用程序可以从服务器下载新内容。这可以在通知处理程序中完美完成。

【讨论】:

由于我在您的一个链接中读到,如果应用程序在前台,则不会向用户显示任何消息/对话框,这意味着,如果服务器确认注册(推送到iPhone),我不必担心,也不会使用静默通知,因为在我的情况下,应用程序将处于前台(等待确认),对吗?

以上是关于在 iOS 中显示视图而不是默认通知的主要内容,如果未能解决你的问题,请参考以下文章

IOS 通知显示两次默认和我的通知警报

如何在 iOS 中触发通知时打开警报视图?

在 Xamarin iOS 中的远程通知的“默认用户操作”上推送视图控制器

如何检查用户之前是不是在 iOS 中查看过推送通知权限警报视图?

iOS 8 交互式通知默认不显示按钮

iOS 7 本地通知默认没有声音