当您的 iPhone 收到 WhatsApp/Telegram 推送通知时,例如
wife:
"buy pizza"
问题1:应用程序是否必须自行下载/接收。那就是手机上弹出的横幅必须自己下载+我的Whatsapp / Telegram必须自己再次下载?
我的朋友回复:
推送通知可以将消息作为有效负载。您的应用程序可以提取它并动态插入对话,而无需发出额外的请求——我以前做过。让人感觉快了很多。不利的一面是,您不能保证推送会以正确的顺序(或根本没有)到达。
但我不相信,从语义的角度来看,推送通知不应该真正更新您的应用程序本身。如果他们这样做,那将是一种滥用......他们应该只通知您的应用程序有更新,然后允许您通过下载任何可用的新内容自己进行更新。
因此,为了看看顶级公司和他们的应用程序是否在应用我朋友的建议,我对 3 个应用程序(Gmail、WhatsApp、Telegram)做了一个小实验:
我关闭了 Wifi,但保持蜂窝数据打开,然后我还禁用了应用程序使用蜂窝数据的访问权限。
然后我有人给我发了一条消息/电子邮件:这是我的结果:
电报::我收到一个警报(有发件人+第一行)。但是一旦我打开应用程序(或点击通知),它就没有我的新消息或任何东西。
但是,如果允许 Telegram 访问互联网……它会在后台下载消息……也就是说,如果我遵循以下顺序:我是 wifi 或没有互联网限制的蜂窝数据 --> 收到通知 --> 转互联网完全关闭,然后转到应用程序:我会在那里看到完整的消息/正文。
Gmail:我收到一条警报(有主题/发件人/正文的预览)但是一旦我打开应用程序,它就没有我的新消息或任何东西。
如果允许 Gmail 应用程序访问互联网……那么与 Telegram 相反:只有在打开应用程序本身之前,它才会下载/更新 Gmail 中的电子邮件。我猜 Gmail 没有content-available
设置为,1
但 Telegram 已设置为1
WhatsApp:我什么也没得到。
收到通知后不会发生任何交互......只有当应用程序正在下载自己时才会发生。
我的结论是:
收到通知后不会发生任何交互......只有当应用程序独立于有效负载到达时下载自己时才会发生。
Gmail 和 Telegram 正在进行冗余下载,基本上对我朋友的建议不够聪明,或者没有收到电子邮件/消息的风险太大,最好是安全的:thinking_face:
问题2:这个结论正确吗?