通知 ios 应用程序有关来自 SDK 的事件的理想方式

Posted

技术标签:

【中文标题】通知 ios 应用程序有关来自 SDK 的事件的理想方式【英文标题】:Ideal way to notify ios application about an event from an SDK 【发布时间】:2016-06-02 06:42:54 【问题描述】:

我们正在构建一个提供特定服务的 SDK,并将其集成到 ios 应用程序中。这个问题非常笼统,需要建议如何实际进行。 SDK 侦听不同的操作系统通知和事件,并且对于某些事件需要用户对其做出反应。例如,SDK 在后台执行一些操作,但在这期间需要用户启动客户端并输入某些缺失的信息。 如何将此信息从 SDK 传递到 iOS 应用程序,以便应用程序开发人员对其做出反应并以他们定制的方式向最终用户显示信息,(比如在后台时是本地通知,而在前台时是一些定制的警报) 但不应从 SDK 触发 UI 通知,这实际上是要求。 创建代表就足够了,或者是他们的任何其他更清洁的方式来推进它。

【问题讨论】:

我将此标记为基于意见,但您可以有代表或通知,这完全取决于您。 是这样,SDK 会发布通知,iOS 应用程序将听取这些通知,或者您建议显示来自 SDK 本身的信息(这实际上是必需的)... 真的,无论哪种方式 - 这是一个设计级别的决定。 【参考方案1】:

我建议你使用委托而不是 NSNotification :

您可能只需要 1 个响应来响应您的呼叫,因此如果您需要 NSNotification,没有什么可以阻止客户端应用多次响应。

如果用户需要通知,他可以在你的委托方法中自己实现。

委托提供即时响应,NSNotification 是异步的。如果您需要来自客户端的信息,您应该要求同步响应。

干杯

【讨论】:

以上是关于通知 ios 应用程序有关来自 SDK 的事件的理想方式的主要内容,如果未能解决你的问题,请参考以下文章

iOS VoIP 推送通知 (PushKit)

Swift 清除特定的远程通知

iOS SDK 中的通知中心与委派

在 iOS 中如何在后台运行状态下获取全局触摸事件通知?

iOS - 在收到推送通知事件时更改视图的内容

来自 iOS 锁屏的应用程序中的自定义远程事件处理