【问题标题】:How is whatsapp fetching message in background in windows phone?whatsapp如何在Windows Phone的后台获取消息?
【发布时间】:2013-09-11 10:23:04
【问题描述】:

在 Widows Phone Store 上的 Whatsapp 最新更新后,我注意到现在,一旦他们在我的设备上显示消息敬酒,然后他们将消息标记为已送达(通知发件人 消息已到达我的设备)。

在我让 toast 通知消失后,我关闭了所有数据连接并打开了 Whatsapp,并在我的应用程序中发现了该特定消息。这在 wp7 和 wp8 设备上始终如一地发生。即使我禁用了后台代理,也会发生这种情况!除了应用程序的后台代理不会一直运行。

所以我的问题是,在 Windows Phone 平台上,不允许应用程序一直在后台运行,Whatsapp 应用程序如何获取这些消息?当它不在前台时,它是否使用任何特定的 api/hack 来获取(在应用程序中)这些消息。

【问题讨论】:

    标签: windows-phone-7 whatsapp background-agent windows-phone-voip


    【解决方案1】:

    您提出的问题有两个部分:一个是针对 wp7 的,另一个是针对 wp8 的。我会一一分析。

    Windows 手机 7

    根据我的研究,我发现 whatsapp 仍在 wp7 设备上使用音频流 api 在后台流式传输消息,即当应用程序未运行时。 Whatsapp 因使用此 API 而受到批评,因为不断使用此 API 会导致电池耗尽并影响用户的音乐体验。

    Windows Phone 8

    whatsapp 迁移到 wp8 后,他们停止使用音频 API 并迁移到 VOIP API。请注意,whatsapp 不会出于任何目的使用 VOIP,但他们的清单显示了 VOIP api 的使用,并且在阅读了许多文章后,我得出的结论是他们正在使用此 API 来激活后台代理并在后台池消息。

    在发送类型 4 的原始推送时,VOIP 的后台代理被激活,您实际上可以在其中执行任何操作,从读取有效负载到建立新的套接字连接,但受限于某些 API 的使用

    我还发现,即使用户禁用应用程序的 bg 代理,一些基本的 bg 代理仍会继续运行,例如音频流 API 和 VOIP API 中的 bg 代理。

    我希望这能回答你的问题。

    【讨论】:

      【解决方案2】:

      通过这个链接

      Push notification for Windows Phone

      帮助你理解的是

      服务器为每个 URI 维护最多 30 个通知(无论类型如何)。一旦达到 30 的限制,所有发送到服务器的新消息都将被丢弃,直到设备重新连接并且可以刷新队列。

      【讨论】:

      • 基本上是什么应用程序使用与 windows 或任何其他 Skype 相同的概念。在移动设备中通过移动连接从服务器获取数据块可能需要大量开销。因此,一旦您收到敬酒,消息就会下载到您的设备上。尝试删除您的设备内存,它将被擦除,您将找不到任何内存。网页从服务器获取数据时则相反。 :)
      • 您是说一旦收到吐司,它就会保存在设备上。因此,如果收到我的应用程序的祝酒词,那么当用户打开该应用程序(没有互联网连接)时,该应用程序可以使用该特定的祝酒词吗?如果这就是你的意思,那么你能告诉我吐司在哪里下载吗?我如何在我的应用程序中访问它。 PS:我认为没有任何应用可以访问推送服务发送的 toast。(除非用户点击它)
      • msdn.microsoft.com/en-us/library/gg680266(v=pandp.11).aspx 通过这个链接,它会给你和本地存储的想法。他们关心的是应用程序到底使用了什么样的存储。我们不能将另一个应用程序的数据用于我们的数据。这将是安全漏洞。显然用户不会想要这样。仍然是确切的文件结构如果我找到确切的文件位置,我会搜索它。
      【解决方案3】:

      windows phone 中有一种叫做原始通知的东西,这些与推送通知不同,推送通知显示一个通知,但是原始通知会触发一个后台任务,该任务可以在某些 api 限制下运行大约 15 秒。 (我认为,我不确定持续时间),我认为 whatsapp 的作用是下载消息并将其保存在设备中维护的本地数据库中。打开 whatsapp 时,它将读取本地数据库并与服务器同步。

      如果我错了,请纠正我。

      【讨论】:

        猜你喜欢
        • 2021-03-09
        • 2013-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-22
        • 2012-02-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多