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

时间:2016-10-13 09:00:57

标签: android push-notification google-cloud-messaging xamarin.forms onesignal

我已经创建了Xamarin Forms PCL项目。我已经整合了OneSignal推送通知即将推出并显示正常。我想在有人点击通知时处理该事件,以便我可以显示与之对应的活动。我还添加了Xam.Plugin.Pushnotifications,但我甚至无法处理。消息来了,我可以捕获消息并使用它,但我想处理通知上的点击事件。我应该怎样在PCL中做到这一点?

1 个答案:

答案 0 :(得分:1)

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();