Xamarin.forms Azure通知中心设备注册

Xamarin.forms Azure通知中心设备注册,xamarin.forms,xamarin.android,azure-notificationhub,visual-studio-app-center,Xamarin.forms,Xamarin.android,Azure Notificationhub,Visual Studio App Center,自从AppCenter在今年年底退休以来,我已经开始迁移到Azure通知中心。 但问题根本不清楚。特别是Xamarin.Android的文档。它与他们最新的SDK不匹配 在最新的(1.1.1版)azure notification hub SDK for(或)中,无需实现FirebaseMessagingServiceNotificationHub.Start()方法在通知中心注册设备。以这种方式注册的设备可以毫无问题地获取通知 NotificationHub.Start(Application

自从AppCenter在今年年底退休以来,我已经开始迁移到Azure通知中心。 但问题根本不清楚。特别是Xamarin.Android的文档。它与他们最新的SDK不匹配

在最新的(1.1.1版)azure notification hub SDK for(或)中,无需实现
FirebaseMessagingService
NotificationHub.Start()
方法在通知中心注册设备。以这种方式注册的设备可以毫无问题地获取通知

NotificationHub.Start(Application, <HubName>, <ConnectionString>);
但在官方文件中指出,设备可以从客户端或服务器端向通知中心注册。如果我的应用程序使用
NotificationHub.Start()
方法在通知中心注册,是否需要使用这些方法之一?还是我遗漏了什么

另外,当我使用AppCenter时,我使用AppCenter InstallId来定位特定设备。 考虑到这一点,可以使用
NotificationHub.InstallationId
作为标记(例如:
“句柄:
如果我的应用程序使用NotificationHub.Start()方法向通知中心注册,是否需要使用这些方法之一

当您调用
NotificationHub.start(Application,…)
时,Android SDK将侦听添加的标记、新的FirebaseMessagingService令牌等更改。只要检测到更改,它将调用
InstallationAdapter
通知后端新的详细信息

默认的
InstallationAdapter
将向Azure Notification Hubs后端发送PUT请求,如文档所示。这是由
NotificationHub.start(应用程序、字符串、字符串)
创建的;对于不托管自己后端的用户,这是一个合理的默认设置

如果您有自己的后端用于跟踪设备,或者您只是希望将凭据保留在服务器端,则可以将
InstallationAdapter
替换为调用API的类。您只需通过调用实现并初始化SDK即可

如果使用如上所述的
NotificationHub.start(…)
方法,则无需执行进一步的注册操作


考虑到这一点,可以使用NotificationHub.InstallationId作为标记(例如:“handle:关于设置InstallationId和/或UserId的问题。如果我使用的是Microsoft.Azure.NotificationHubs.Client,那么这样做更有意义

我应该通过$InstallationId标记(请参见此处:)设置InstallationId,还是通过实现InstallationEnrichmentAdapter并通过调用EnricInstallation方法中的installation.InstallationId=来设置InstallationId

此外,
Microsoft.Azure.NotificationHubs.Client.Installation
类还提供了一个可以更新的UserId属性


我还将推送通知从AppCenter移动到Azure通知中心,并希望重用现有的AppCenter
InstallId

谢谢@MarStr!这有助于解决我的主要问题。如上所述,
InstallationId
的过期日期每次提前90天
NotificationHub.Start(…)
在[本文]中被调用它说,就像在appcenter中一样,禁用接收推送通知设置
NotificationHub.Enabled
为false将停止刷新令牌,直到令牌过期。这是否意味着应用程序将接收90天以上的通知?如果我想暂时禁用推送,最好的方法是什么?好问题-如果您致电
NotificationHub.setEnabled(错误)
,您应该立即停止收到通知,并且对设备记录的任何更新都将仅存储在本地,即不会调用
安装适配器
。一旦重新启用它,一切都将重新开始。无论哪种方式,您都应该继续调用
通知中心。启动
,以便对内容进行更改ike标签可以在本地跟踪。我忘了添加指向我上述评论的链接,这是我的错误。1.“如这里所述”(关于过期日期的文章)-2.“[本文]中说”(关于
NotificationHub.Enabled
-@MatStr-我的应用程序是Xamarin.Android应用程序。即使我设置了
NotificationHub.setEnabled(false)
(或者在Xamarin
NotificationHub.Enabled=false
中,应用程序仍然收到推送。如中所述:“禁用时,推送令牌不会刷新,但在当前令牌过期之前仍会收到推送”请阅读并更新您的问题。@TomK您已经发布了一个问题,因此请将此作为单独的问题提问。不过,请快速评论您的最后一部分:您不能在Notification Hub上重复使用您的AppCenter
InstallId
NotificationHub.AddTag("username:user123");