我在使用 UWP 推送通知时遇到以下问题。
设想:
Foreground 为推送通知注册了一个后台任务,但也希望收到传入推送的通知,因此它获取一个通道,使用该通道更新服务器,然后挂钩该通道上的事件。
推送通知进来
- 后台任务启动并正常工作。它还检查频道 URI 是否已更改,如果已更改,则使用新的 uri 更新服务器。
结果:
前台应用程序不再接收通道上的传入推送,因为后台任务使用与前台应用程序正在侦听的不同的通道 uri 更新了服务器。
在 uri 可能发生更改后,前台应用程序继续侦听推送通知的正确方法是什么?
更新的问题澄清:
第 1 步前台应用程序代码:
var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
channel.PushNotificationReceived += OnPushNotificationReceived;
//<update server with channel.Uri
步骤 2后台任务启动并检查新的频道 uri:
var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
//update server with channel uri
问题
如果第 2 步中的通道 uri 发生变化,则第 1 步中的偶数处理程序将不再被调用。