Loading [MathJax]/jax/input/TeX/config.js
社区首页 >问答首页 >Swift/iOS哪种通知机制最可靠?

Swift/iOS哪种通知机制最可靠?
EN

Stack Overflow用户
提问于 2019-02-28 23:36:59
回答 1查看 329关注 0票数 1

我们目前正在开发一个基于Swift 4的iOS应用程序。iOS应用程序接收到一些非常重要的通知,即使应用程序没有活动(例如在后台),这些通知也应该尽可能快和可靠地到达。

因此,我们目前正在问自己,哪种通知机制是最好使用的。我们正在考虑以下几点:

  • 苹果推送直接向用户显示通知的通知
  • 将创建LocalNotification的Apple通知
  • MQTT (但我猜它在后台不起作用吗?)
  • 苹果PushKit VoiP

你能帮我们吗?据一些互联网研究显示,苹果PushKit似乎是最可靠的。但是,我们可以使用它,虽然我们实际上没有voip功能在我们的应用程序?

非常感谢你的帮助。

最棒的,穆恩利

EN

回答 1

Stack Overflow用户

发布于 2019-02-28 23:54:36

编辑(在获得更多信息后)

好的,在阅读了您的用例之后,我认为我们可以简化很多,并且仍然有一种高度可靠的方法。

假设:

  • 用户使用的iPads很可能是医院所有的,不会有任何问题而不接收通知,因为他们只是发送者。
  • 另一方面,护士的电话可以被有意或无意地配置为接收或不接收通知)
  • 你并不是真的没有根据通知在应用程序中执行任何重要的动作,你只需要护士对它采取行动。

考虑到这一点,我对您的建议是使用常规的推送通知和SMS通知作为备份。

  1. 当用户点击ipad说他们饿/渴/痛苦时,你的后端会收到这个请求并发出推送通知。
  2. 您的后端现在启动一个计时器,当它应该期望一个ping,说通知已被读取(护士打开应用程序,因为通知)。
  3. 如果后端在1分钟内没有得到ping (或任何您的阈值),您的后端现在会发出一条短信,这是传送的载体。
  4. 如果后端还没有得到ping,则重复步骤2和步骤3,然后发送到二级联系人(护士长?医生?)
  5. 当应用程序打开时,您将获取所有待处理的通知,并做您需要做的任何事情(请护士确认接收或确认已采取的行动)
  6. 您甚至可以进行紧急备份,如果ping从未在最长时间内发生(30分钟?1小时?),用户的ipad会显示一条警告信息,要求用户使用物理的“呼叫护士”按钮。
  7. 您可以根据用户请求的操作来反转优先级(SMS优先用于“痛苦”触发器,推动所有其他操作)。

您肯定可以信任push服务,因为它非常可靠,并且它提供了一些调试数据,但只需确保有回退方法和回退方法的回退:P

原始答案

首先,你必须扪心自问,为什么你的应用程序收到通知如此重要。当用户打开应用程序时,你真正需要做什么才能做到这一点?

您不应该依赖通知来在应用程序上执行重要的操作,其中一个通知就是给用户的一条信息。它绝不应该是执行关键活动的一种形式。当然,通过指定的所有方法,您都可以在收到通知时执行操作,但只能通过操作来帮助应用程序比手动触发时更快地执行某种逻辑。

确保您的应用程序架构的方式,关键的信息需要不断触发,可以执行多种方式。所以你可以通过推送或无声推送来触发,如果不起作用,用户会收到一封电子邮件来做一些打开应用程序并手动触发它的事情,等等。

请记住,这些类型的通知可以手动禁用,可以启用,但无法传递,因为推送基本上是触发和遗忘。

我不知道您的应用程序是关于什么的,但请始终考虑这样的流对用户的影响,以及如果不执行关键活动时会发生什么情况。

很抱歉,如果这对你真正想要的东西没有帮助的话,但我已经是两个主要应用程序的一部分,它们“依赖”通知来执行一些事情,而我们总是有很多问题想要找到解决办法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54939964

复制
相关文章
iOS_Swift函数派发机制
派发效率从高到底:Static dispatch > Table dispatch > Message dispatch
mikimo
2023/10/18
2790
iOS_Swift函数派发机制
iOS_Swift函数派发机制
派发效率从高到底:Static dispatch > Table dispatch > Message dispatch
mikimo
2023/10/18
2000
iOS_Swift函数派发机制
Swift 派发机制
分析三种派发方式主要从性能及动态性两方面讨论,这两个特性相对而言是矛盾的,性能要求高,则动态性差,反之亦然,其中直接派发又被称为静态派发,函数表派发与消息派发称为动态派发,大多数语言都会支持上面派发方式的一种到多种。如
CoderStar
2022/08/24
1.1K0
Swift 派发机制
iOS 本地通知
如果用户长时间没有使用我们的APP,我们就需要提醒用户来使用。这个本地通知就可以做到。 先说明一下我的解决思路:在AppDelegate里面写 1,当用户退出app时创建一个通知,一定时间后调用,比如10秒。 //进入后台响应的方法 - (void)applicationDidEnterBackground:(UIApplication *)application { // 初始化本地通知对象 UILocalNotification *notification = [[UILocalNo
王大锤
2018/05/17
1.1K0
学习哪种语言最容易找到工作?
在当前编程语言语言变化极大今天,让很多还没入门的小白傻眼了,到底选择哪种语言才能更好的就业,选择哪个语言更好的就业,都说Java是第一入门语言是真的嘛?既然这么多争议我们来看看到底这些语言到底有啥区别,到底优缺点在哪? C语言,基本上是目前所有编程语言的鼻祖了,绝大部分语言的底层实现是基于C来构架的,放在第一位其实也没多少争议,C语言是很靠近底层的语言,对于想了解系统构架的小伙伴是必不可少的语言,特别是对开源linux系统有很深感觉的,C语言是必须的掌握的,还有一些立志于成为架构师的小伙伴,从整个架构思
程序员互动联盟
2018/03/15
1.1K0
学习哪种语言最容易找到工作?
哪种 Python 程序员最赚钱?
本文是春节经典文章回顾专题第一弹。转载自简说Python,作者XksA,详情可以扫描下方二维码关注该公众号
数据森麟
2019/09/27
5820
iOS开发--本地通知与远程通知
1、NSNotification是系统内部发出通知,一般用于内部事件的监听,或者状态的改变等等,是不可见的 2、本地通知与远程通知是可见的,主要用于告知用户或者发送一些App的内容更新,推送一些相关的消息,让用户知道App内部发生了什么事情。
孙寅
2020/06/02
3.3K0
iOS OC调用Swift
)是用的swift写的,下面以OC项目中集成TUIMeeting这个组件为例简单介绍下OC
zqh
2021/08/24
2.7K0
iOS  OC调用Swift
iOS runtime swift swizzling
Swift 是一种强类型语言。即默认类型是安全的静态类型。纯Swift类的函数调用已经不再是OC的运行时发送消息,而是类似于C++的vtable,在编译时就确定了调用哪个函数,所以没法通过runtime获取方法,属性。Swift中的动态性可以通过OC运行时来获得,动态性最常用的就是方法替换(Method Swizzling)。
用户6094182
2019/08/23
1.5K0
iOS-Swift 方法
在上篇文章 结构体与类 中,我们了解到结构体与类的本质区别,并且通过阅读 Swift 源码以及验证,得知 Swift 类的本质就是 HeapObject 的结构体指针。
CC老师
2022/03/15
3.1K0
iOS-Swift 方法
iOS:swift :可选类型
import UIKit /*: 可选类型 * 可选类型表示变量可以有值, 也可以没有值 * C 和 Objective-C 中并没有可选类型这个概念 * Swift中只有可选类型才可以赋值为nil
用户1941540
2018/05/11
1.2K0
Netty之异步通知机制
前面的文章分析了Channel实例化、初始化、注册机制,本文分析下异步结果的通知,也就是回调,同时梳理下Future、Promise、ChannelFuture、ChannelPromise的关系。
瓜农老梁
2020/07/28
8880
推送-iOS本地通知
从 iOS 10 新增的 UserNotifications Framework 可以发现,Apple 整合了原有散乱的 API,并且增加了许多强大的功能。以 Apple 官方的角度来看,也必然是相当重视推送服务对 App 的影响、以及对 Apple iOS 生态圈长远发展的影响。
進无尽
2018/09/12
7.4K1
推送-iOS本地通知
对比授权机制,你更想用哪种?
授权机制,当我们说到这个问题的时候,大家对它的第一印象是在哪个地方呢?是不是曾经某培训机构教授的 SSO 单点登录的,是的没错,而这种 SSO 的单点登录在当年的培训机构中,使用的就是 Session 共享,也就是用 Redis 做中间模拟 Session ,但是授权机制真的有这么简单么?接下来阿粉就来强势对比一下关于授权机制了。
Java极客技术
2022/12/02
6620
对比授权机制,你更想用哪种?
Spring Event事件通知机制
Spring Event事件通知机制 1、监听者模式 2、DEMO(同步) 3、Spring实现细节 4、Spring Event 4.1 ContextRefreshedEvent 4.2 ServletRequestHandledEvent 5、异步Pushlish以及DEMO
袁新栋-jeff.yuan
2020/08/26
1K0
iOS14开发- 通知
远程通知是指在联网的情况下,由远程服务器推送给客户端的通知,又称 APNs(Apple Push Notification Services)。在联网状态下,所有设备都会与 Apple 服务器建立长连接,因此不管应用是打开还是关闭的情况,都能接收到服务器推送的远程通知。
YungFan
2021/11/24
1.7K0
iOS14开发- 通知
eBay 如何提高通知平台的可靠性
作者 | Sergio De Simone 译者 | 刘雅梦 策划 | 丁晓昀 eBay 工程师一直在使用故障注入技术来提高通知平台的可靠性,并探索其弱点。虽然故障注入是一种常见的行业实践,但 eBay 尝试了一种利用插装将故障注入引入到应用程序层的新方法。 该平台负责向第三方应用程序推送平台通知,以提供商品价格、商品库存状态、支付状态等方面的最新变化。它是一个高度分布式和大规模的系统,有许多外部依赖,包括分布式存储、消息队列、推送通知端点等。 eBay 工程师 Wei Chen 表示,通常情况下
深度学习与Python
2023/03/29
6670
eBay 如何提高通知平台的可靠性
iOS Swift基础语法(二)
2、基本数据类型 这里介绍一下Swift的基本数据类型:整数、浮点数、布尔型、可选型和元组,其它较复杂的后面再介绍。Swift中的数据类型的首字母都是大写的。 2.1、整数 整数的定义为没有小数部分的
傅_hc
2018/07/04
1.1K0
iOS_Swift高阶函数
看着不像是函数作为参数,是因为 Swift 尾随闭包 Trailing Closure 的特性。Swift 允许当函数的最后一个参数是闭包时,可以以紧跟 { } 的形式,将最后一个闭包的内容附加在函数后面。
mikimo
2023/10/18
2160
iOS_Swift高阶函数
Zookeeper 通知更新可靠吗? 解读源码找答案!
遇到Keepper通知更新无法收到的问题,思考节点变更通知的可靠性,通过阅读源码解析了解到zk Watch的注册以及触发的机制,本地调试运行模拟zk更新的不可靠的场景以及得出相应的解决方案。
特鲁门
2018/07/17
3.4K12

相似问题

您认为哪种开源CMS最可靠,最注重性能?

50

可靠传递iOS VOIP推送通知

15

iOS无声通知有多可靠?

11

使用哪种声音格式?iOS通知

10

IOS Swift持续通知

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文