如何处理 Xamarin Forms 推送通知中的点击事件?

How to handle the tap events in Push Notifications in Xamarin Forms?

我已经创建了 Xamarin Forms PCL 项目。我已经集成了 OneSignal 推送通知,这些通知即将到来并且显示良好。我想在有人点击通知时处理该事件,以便我可以显示与之对应的 activity。我还添加了 Xam.Plugin.Pushnotifications 但我什至无法处理水龙头。消息来了,我可以捕获消息并使用它,但我想处理通知上的点击事件。在 PCL 中我应该怎么做?

Xamarin OneSignal SDK 不支持 PCL 项目,因为它需要特定平台 类。您需要将代码添加到共享项目,如 Xamarin OneSignal setup guide.

中所示

使用以下代码处理通知打开事件。

 // Notification Opened Delegate
 OneSignal.NotificationOpened exampleNotificationOpenedDelegate = delegate (OSNotificationOpenedResult result)
 {
    try
    {
       System.Console.WriteLine("OneSignal Notification opened:\nMessage: {0}", result.notification.payload.body);
       Dictionary<string, object> additionalData = result.notification.payload.additionalData;
       if (additionalData.Count > 0)
          System.Console.WriteLine("additionalData: {0}", additionalData);


       List<Dictionary<string, object>> actionButtons = result.notification.payload.actionButtons;
       if (actionButtons.Count > 0)
          System.Console.WriteLine("actionButtons: {0}", actionButtons);
    }
    catch (System.Exception e)
    {
       System.Console.WriteLine(e.StackTrace);
    }
 };

OneSignal.StartInit("YOUR_APP_ID", "YOUR_GOOGLE_PROJECT_NUMBER")
        .HandleNotificationOpened(exampleNotificationOpenedDelegate)
        .EndInit();