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