【问题标题】:How to catch application uninstalling on device and let server know about this (iOS/Android)如何在设备上捕获应用程序卸载并让服务器知道这一点(iOS/Android)
【发布时间】:2012-02-06 20:37:11
【问题描述】:

问题描述:

我们有一项服务,其中包含适用于主要移动操作系统的应用程序。我们使用推送通知。当用户登录时,我们存储他的设备授权数据(比如说令牌)以供以后在推送服务中使用。问题在于一个用户的设备授权很少,并且在用户卸载应用程序时正确保持它们有效。

示例:

我把我的系统登录名给了几个人,以防万一。他们通过暴徒登录。应用程序和系统自动将一些设备授权添加到数据库(令牌)中。所以现在我们有 1 个用户的 N 个设备令牌。因此,如果我们发送推送通知,每个人都会收到它。现在,假设那些安装了应用程序的人想要卸载它。在没有注销的情况下,他们通过应用程序管理器卸载应用程序。目前我们没有授权设备的有效数据。如果我们尝试通知他们,通知将无处发送。这是错误的,对服务器来说是无用的工作。如何让核心知道部分存储的数据不再有效?

很快——Android / iOS 中是否有可能触发应用程序删除事件。如果应用程序正在被删除,应用程序调用服务器来清理存储中的数据。或者如果应用程序打开并且用户卸载它,是否会触发 onDestroy() 触发器?还是其他?

我不是 iOS 开发者,也不是 Android 开发者,只是对第二个有点了解,对第一个一无所知。任何建议将被认真考虑。提前致谢。

【问题讨论】:

  • 哦,对了,你想知道那个。它的工作方式不尽相同,但最终当足够多的通知​​失败时,您会收到有关应用程序卸载的通知。更新了响应。

标签: android ios triggers push-notification uninstallation


【解决方案1】:

这取决于您使用的推送服务。 Afaik,如果您使用C2DM,卸载应用程序的行为将自动从 C2DM 注销它。

编辑:

哦,关于 iOS - afaik 它不会直接跟踪已卸载的应用程序,但它确实带有一个失败的通知 feedback 服务,在一系列失败的通知之后(由 device 到推送网络)会通知您 - 允许您在卸载应用程序后进行清理。

【讨论】:

  • 你说得对,我们正在使用 C2DM。谢谢,明白了。关于 C2DM 的一个问题 - 如果应用程序关闭,它会发送推送通知吗? (不在后台运行)?
  • @devdRew:是的。即使您的应用程序当前没有运行任何组件,C2DM 也会调用您注册的BroadcastReceiver
  • 是的,它会将推送通知作为广播 Intent (action=com.google.android.c2dm.intent.RECEIVE) 发送,因此您无需一直运行。跨度>
  • 谢谢,你真的帮了大忙。
【解决方案2】:

我不能代表 iOS。在 Android 中卸载您的应用时,您无法控制。

【讨论】:

  • 好的,明白了,但是如果应用程序在后台运行,我要卸载它,会触发 onDestroy() 方法吗?
  • @devdRew:我不会指望它。此外,即使是这样,您也无法区分卸载和任何其他会调用您的 onDestroy() 的情况。
  • 几乎唯一的方法是向您控制的服务器注册一个重复的“ping” - 但是当人们关闭移动数据/去时,这往往会注册很多错误的卸载在国外或者你有什么。
猜你喜欢
  • 2012-01-30
  • 1970-01-01
  • 1970-01-01
  • 2014-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-07
相关资源
最近更新 更多