当用户关闭应用程序时,如何在Xamarin iOS上处理用户单击本地通知?

问题描述 投票:1回答:1

我的应用程序收到通知并显示本地User Notification

local notification click_open_notification

[当用户关闭此应用程序并单击此本地通知时。

我想处理打开此本地通知的事件。

我尝试了以下链接:

Handle local notification tap Xamarin Forms iOS

但是方法ReceivedLocalNotification()似乎不起作用(我尝试显示警报,但警报未显示。)

而且我尝试在方法DidReceiveRemoteNotification()]中显示警报。>>

类似于Xamarin.iOS - Red & Green Notifications示例,但我无法处理事件“ 用户在应用程序关闭时单击本地通知“。

这是我的代码:

        [Export("userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:")]
    public void DidReceiveNotificationResponse(UNUserNotificationCenter center, UNNotificationResponse response, System.Action completionHandler)
    {
        // Show Alert 
        var alert = new UIAlertView()
        {
            Title = "LocalNotification",
            Message = $"Content: Method DidReceiveNotificationResponse()"
        };
        alert.AddButton("OK");
        alert.Show();

        if (response.IsDefaultAction)
        {
            Console.WriteLine("ACTION: Default");
        }
        if (response.IsDismissAction)
        {
            Console.WriteLine("ACTION: Dismiss");
        }
        else
        {
            Console.WriteLine($"ACTION: {response.ActionIdentifier}");
        }

        completionHandler();
    }

请帮助我!

如何处理事件“ 用户在应用程序关闭时单击本地通知

”?我正在ios 12.4和ios 13.0上进行测试。

我的应用程序收到通知并显示本地用户通知。当用户关闭此应用并单击此本地通知时。我想处理打开此本地文件的事件...

xamarin xamarin.forms xamarin.ios
1个回答
2
投票

您必须检查AppDelegate.cs替代项中的FinishedLaunching内部,以了解传递到应用程序中的选项。它将包含推送通知信息。

UNUserNotificationCenter.Current.Delegate = new UserNotificationCenterDelegate();

if (options != null)
{
    if (options.ContainsKey(UIApplication.LaunchOptionsRemoteNotificationKey))
    {
        NSDictionary dic = options[UIApplication.LaunchOptionsRemoteNotificationKey] as NSDictionary;

        // decide what to do with push info here
    }

    Console.WriteLine($"Startup: {nameof(AppDelegate.FinishedLaunching)} : {nameof(options)} {options}");
}
© www.soinside.com 2019 - 2024. All rights reserved.