如何在传入推送通知时启动/恢复 Windows Phone 8.1 C# 应用

本文关键字:Windows 恢复 Phone 应用 启动 通知 | 更新日期: 2023-09-27 17:55:25

我正在WP 8.1上开发一个试点Windows运行时应用程序,该应用程序必须在传入的推送通知上向用户显示一些覆盖(或至少是MessageDialog)。

下面的代码显示了当应用程序处于前台并且 Toast 即将到来时的消息,但我找不到如何启动/恢复/do_whatever应用程序,当它在后台或可能是应用程序甚至根本没有启动或手机被锁定时。我在控制台日志中看到的 ATM,当应用程序进入后台时,仍然会收到 toast,但没有显示 UI 消息。

我有什么:

ToastCapable="true"在应用程序清单中。

在某些 xaml.cs 文件中:

init() {
    PushNotificationChannel channel 
        = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
    channel.PushNotificationReceived += OnPushNotificationReceived;
}
void OnPushNotificationReceived(PushNotificationChannel sender, PushNotificationReceivedEventArgs e) {
    Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => {
        showToTheUser();
    });
}
private async void showToTheUser() {
    // TODO message to be replaced with full-screen overlay later
    var messageDialog = new MessageDialog("Incoming push");
    messageDialog.Commands.Add(new UICommand(
        "Accept",
        new UICommandInvokedHandler(this.CommandInvokedHandler)));
    messageDialog.Commands.Add(new UICommand(
        "Refuse",
        new UICommandInvokedHandler(this.CommandInvokedHandler)));
    messageDialog.DefaultCommandIndex = 0;
    messageDialog.CancelCommandIndex = 1;
    await messageDialog.ShowAsync();
}
private void CommandInvokedHandler(IUICommand command) {
    if (command.Label.Equals("Accept")) {
        // show some UI page of the app
    }
}

是一个经验丰富的Java人,刚开始使用WP和C#,所以我很困惑在WP上完成所有操作的正确方法是什么,或者我应该搜索什么。

如何在传入推送通知时启动/恢复 Windows Phone 8.1 C# 应用

如果我理解正确,您希望根据推送通知和显示信息启动应用程序。这在Windows Phone上是不可能的。用户可以单击通知横幅并打开应用程序,但您无法自动执行此操作。