azure通知中心-应用程序卸载

azure通知中心-应用程序卸载,azure,apple-push-notifications,google-cloud-messaging,azureservicebus,azure-notificationhub,Azure,Apple Push Notifications,Google Cloud Messaging,Azureservicebus,Azure Notificationhub,我想使用Azure通知中心向运行iOS、Android和Windows Phone的应用程序用户发送推送通知 我已经设法让基础工作,但我不知道如何管理应用程序卸载的故事 启动时,移动应用程序将调用my Identity Svc以获取身份验证令牌。 然后,它调用其平台通知服务(如Google Cloud Messaging,APNS)获取PNS令牌。 将令牌持久化到本地存储后,它将调用后端联系人Svc来注册客户的设备。此服务将为设备创建Azure通知中心订阅 下图对此进行了说明: 稍后,后端发布

我想使用Azure通知中心向运行iOS、Android和Windows Phone的应用程序用户发送推送通知

我已经设法让基础工作,但我不知道如何管理应用程序卸载的故事

启动时,移动应用程序将调用my Identity Svc以获取身份验证令牌。 然后,它调用其平台通知服务(如Google Cloud Messaging,APNS)获取PNS令牌。 将令牌持久化到本地存储后,它将调用后端联系人Svc来注册客户的设备。此服务将为设备创建Azure通知中心订阅

下图对此进行了说明:

稍后,后端发布服务将调用联系人服务,请求为特定用户id发送推送通知。联系人服务将查找分配给通知中心上标记的id,并发送推送请求


有哪些选项可用于确定客户何时卸载应用程序?在通知中心上调用“发送”时是否只是捕获错误的问题?我想如果只发送给一个用户,这可能会起作用,但我的目的是将某些消息类型发布给多个订阅者。在设备的初始注册时,将为用户id的标记创建订阅,但也为更通用的标记(如“新促销”)创建订阅。发布服务稍后会向所有设备发出“新促销”通知。

为什么需要知道应用程序卸载

通知中心会自动终止已卸载设备的注册。 此外,我会避免在您的服务中坚持使用pnshandle

当前使用集线器的指导原则如下:

将与设备关联的注册的注册ID存储在本地存储器中。这使您能够使用单个更新调用更新标记和频道信息。 由于移动连接并不总是可靠的,因此最好避免在无法将注册ID存储在本地存储器中的情况下创建新的注册。这可能导致设备多次注册,导致重复通知。您可以通过使用创建注册ID和创建或更新注册RESTAPI来实现这一点。 第一个API返回registrationId,而不实际创建注册。当ID安全地存储在设备存储器上时,设备可以调用创建或更新注册API

所以我想让你的ContactSvc公开两个功能: a) 创建注册id(只需调用hub即可获得) b) 创建或更新给定的注册(注册ID、pnsHandle、标记?)

然后,您的设备将regId保存在其存储器中,从PNS获取句柄后,如果没有as regId,则使用端点a创建一个新的regId),然后使用pnsHandle和标记更新注册

请注意,通过这种方式,您的服务不需要持久化句柄或UUID,也不需要担心应用程序卸载

如果您正在跟踪用户,一种方法是定期(每月一次?)检查您的中心是否仍有注册


如果不清楚,您可以通过@eliodamaggio联系我。

为什么您需要知道应用程序卸载

通知中心会自动终止已卸载设备的注册。 此外,我会避免在您的服务中坚持使用pnshandle

当前使用集线器的指导原则如下:

将与设备关联的注册的注册ID存储在本地存储器中。这使您能够使用单个更新调用更新标记和频道信息。 由于移动连接并不总是可靠的,因此最好避免在无法将注册ID存储在本地存储器中的情况下创建新的注册。这可能导致设备多次注册,导致重复通知。您可以通过使用创建注册ID和创建或更新注册RESTAPI来实现这一点。 第一个API返回registrationId,而不实际创建注册。当ID安全地存储在设备存储器上时,设备可以调用创建或更新注册API

所以我想让你的ContactSvc公开两个功能: a) 创建注册id(只需调用hub即可获得) b) 创建或更新给定的注册(注册ID、pnsHandle、标记?)

然后,您的设备将regId保存在其存储器中,从PNS获取句柄后,如果没有as regId,则使用端点a创建一个新的regId),然后使用pnsHandle和标记更新注册

请注意,通过这种方式,您的服务不需要持久化句柄或UUID,也不需要担心应用程序卸载

如果您正在跟踪用户,一种方法是定期(每月一次?)检查您的中心是否仍有注册


如果不清楚,您可以通过@eliodamaggio联系我。

谢谢您的评论,Elio,我发现它们很有用。我不清楚通知中心如何“自动终止注册”,请您详细说明。我知道了-在中心注册的有效期最长为90天。但不确定如何设置ttl?我刚刚卸载了一个应用程序,注册ID仍在通知中心。您好,我在从android设备卸载应用程序后接收推送通知时也遇到了同样的问题。我用过XamarinAndroid和azure推送通知中心。我如何解决这个问题。2020和相同的交易-注册Firebase代币。重新安装后会有一个新的,但旧的注册不会从Azure中消失。我们可以对存储中的一些ID进行手动清理,但许多ID已经消失,因此似乎无法通过编程方式注销,也无法通过我可以看到的Azure站点注销。因此,有大量的死机/模拟设备。似乎