IBM Worklight - 如何检测应用程序已卸载并停止发送通知?

时间:2014-08-28 12:09:17

标签: ibm-mobilefirst

在应用程序中,用户可以订阅通知或取消订阅。此事件由Worklight适配器处理,该适配器在数据库中注册或删除用户订阅。

但是如果在没有取消订阅的情况下卸载应用程序,则数据库中将保留用户订阅。

如何处理?
有没有办法通知Worklight应用程序卸载?


正如Idan的回答所解释的那样,在一段非特定的时间后,Worklight会自动删除订阅,具体取决于通知提供商。

http://developer.android.com/google/gcm/adv.html#unreg

https://developer.apple.com/library/mac/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html寻找"一般供应商要求"和"反馈服务"

对于Apple如何继续Worklight?它是否每天检查反馈服务,然后删除相应的通知?

我已经使用Android进行了测试,并且WL服务器控制台中出现了一条跟踪说明订阅已被删除"因为通知被服务器拒绝(NotRegistered)"。

这是在我卸载应用程序两个小时后,我发送了23个通知,并且已经卸载了应用程序。

是否可以为此"事件"?

添加自定义处理程序

在WL.Server.createEventSource方法中阅读文档" onDeviceUnsubscribe" "选项的属性"参数说:

"客户端请求或清理任务删除设备订阅时调用的JavaScript函数的名称"

什么是清理任务?我的第一个想法是,我们正在讨论的用例中会调用此回调,但我已经尝试过,当自动删除通知时,不会调用此回调。

目前我向客户发送短信,当客户安装应用程序时,我会发送通知而不是短信,但如果客户卸载应用程序,我需要知道它才能开始再次发送短信。

1 个答案:

答案 0 :(得分:0)

无法通知Worklight Server(由您)已卸载应用程序 - 这是您无法控制的用户操作。

那就是说,你不必担心这个,因为这个确切的场景正在为你处理 这是流程:

如果已卸载已启用推送的应用程序,并且您正在发送通知...此通知将到达APNS / GCM / MPNS服务器,然后该服务器将通知发送到设备,以显示在应用程序中。

由于不再安装应用程序,设备操作系统将向APNS / GCM / MPNS服务器提供通知无法显示的反馈。

最终,将会发生的事情是APNS / GCM / MPNS服务器将通知Worklight Server该令牌不再有效,并且将从数据库中删除订阅。

Worklight无法控制APNS / GCM / MPNS服务器何时通知上述内容。有关更多信息,请参阅相应的服务文档。


您编辑过的问题的补充并不完全清楚,但请注意:

  • APNS令牌失效 - 只有Apple可以告诉您。它可能需要几分钟,几小时,几天,几周......各种情况都有,因此无法保证具体的时间范围。

  • 清理任务可能是Worklight Server完成的任务,用于删除陈旧的订阅。它每1小时运行一次并连接到APNS反馈服务以检索非活动设备列表。收到设备列表后,它会从数据库中删除设备订阅。

  • onDeviceUnsubscribe - 设备取消订阅后,onDeviceUnsubscribe将被触发。此回调的想法是允许开发人员通知企业后端系统设备不再能够接收推送通知,以便后端不再尝试发送它们。这是您可以告诉后端系统发送短信的地方。但是,你真的实现了它(回调)吗?