azure - 如何停止在 Azure 通知中心为同一个 DeviceToken 生成多个 RegistrationId?
问题描述
使用通知中心时:
var registration1 = await hub.CreateAppleNativeRegistrationAsync(cordovaDeviceToken);
var registration2 = await hub.CreateAppleNativeRegistrationAsync(cordovaDeviceToken);
当它是相同的 deviceToken 时,为什么会在集线器中创建两个不同的注册?
我如何知道设备令牌是否已经注册?
我可以自己保存 cordovaDeviceToken 并检查它,但我认为 NotificationHub 正在为我安排。
为什么要为同一设备提供两个registrationId?
我正在寻找一个简单的例子来实现 RegisterOrUpdate 而无需创建自己的数据库?
解决方案
var registration1 = await hub.CreateAppleNativeRegistrationAsync(cordovaDeviceToken);
根据您的代码,我假设您在后端管理注册。
我如何知道设备令牌是否已经注册?
您可以利用GetRegistrationsByChannelAsync根据您cordovaDeviceToken
检查当前 deviceToken 是否已注册来获取注册。或者,您可以在创建新注册之前使用DeleteRegistrationsByChannelAsync根据您的 deviceToken 删除注册。
注意:top
for 参数GetRegistrationsByChannelAsync
表示单个请求返回的注册数,最大为 100,您可以使用fromcontinuationToken
响应获取下一页注册。
为什么要为同一设备提供两个registrationId?
根据我的理解,一个 deviceToken 的单个注册就足够了,相关的 SDK 不会检查是否存在相同的 pnsHandle,您需要在代码中明确检查它。
我正在寻找一个简单的例子来实现 RegisterOrUpdate 而无需创建自己的数据库?
您可以按照教程:使用 Azure 通知中心向特定用户发送通知以获取相关代码片段。
推荐阅读
- usb - 我有一个 DEVINST,我需要设备路径
- android - 如何从本地文件中解析 Json?
- c# - C# EPPLUS:将列自动调整为最大自动大小不起作用
- python - 安装 Python Anywhere 帮助工具时出错
- php - 创建扩展数组的 PHP 集合类
- python - botocore.errorfactory.AuthorizationErrorException
- node.js - 使用 babel 递归地编译服务器文件
- android - 如何解决 Gridview 项目重叠问题?
- r - data.table:第一次出现的行中的字段
- c# - ADO .NET 和 IQueryable