1

我想在 WNS 服务器显示在屏幕上之前控制来自 WNS 服务器的推送通知(toast)..我可以在 Android 中执行此操作,但我可以在 Windows Phone 中执行此操作..??

4

2 回答 2

1

我相信您想要一个原始通知,这是您的手机在应用程序运行时处理的通知。

创建推送通道时,您可以使用 OnPushNotificationRecieved 事件在接收通知时执行逻辑。

这样,如果应用程序正在运行,您的逻辑将在通知出现在屏幕上之前触发。

如果应用程序没有 运行,它将是一个普通的 Toast。

例子:

    _channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
    _channel.PushNotificationReceived += OnPushNotificationReceived;

   private void OnPushNotificationReceived(PushNotificationChannel sender, PushNotificationReceivedEventArgs args)
    {
        switch (args.NotificationType)
        {
            case PushNotificationType.Badge:
                this.OnBadgeNotificationReceived(args.BadgeNotification.Content.GetXml());
                break;

            case PushNotificationType.Tile:
                this.OnTileNotificationReceived(args.TileNotification.Content.GetXml());
                break;

            case PushNotificationType.Toast:
                this.OnToastNotificationReceived(args.ToastNotification.Content.GetXml());
                break;

            case PushNotificationType.Raw:
                this.OnRawNotificationReceived(args.RawNotification.Content);
                break;
        }

        args.Cancel = true;
    }

    private void OnBadgeNotificationReceived(string notificationContent)
    {
        // Code when a badge notification is received when app is running
    }

    private void OnTileNotificationReceived(string notificationContent)
    {
        // Code when a tile notification is received when app is running
    }

    private void OnToastNotificationReceived(string notificationContent)
    {
        // Code when a toast notification is received when app is running

        // Show a toast notification programatically

        var xmlDocument = new XmlDocument();
        xmlDocument.LoadXml(notificationContent);
        var toastNotification = new ToastNotification(xmlDocument);

        //toastNotification.SuppressPopup = true;
        ToastNotificationManager.CreateToastNotifier().Show(toastNotification);
    }

    private void OnRawNotificationReceived(string notificationContent)
    {
        // Code when a raw notification is received when app is running
    }
于 2016-02-18T14:50:15.360 回答
1

您可以在您的情况下使用 toast 通知。Toast 通知由操作系统处理。您可以在 App 的 OnLaunched 事件的启动参数中获取有效负载。

客户样本

服务器应用程序,您可以使用它进行测试。您还可以使用模拟器进行推送测试。

于 2016-02-09T10:32:44.470 回答