OneSignal 推送通知中的附加数据

问题描述

大家好,我正在使用 Xamarin 开发多平台应用程序,我正在使用 Onesignal 平台进行推送通知

这是在帖子中发送推送的代码

var uri = new Uri("https://onesignal.com/api/v1/notifications");

            Dictionary<string,object> userData = new Dictionary<string,object>
            {
                { "app_id","MyAppID" },{"channel_for_external_user_ids","push" },{ "include_external_user_ids",new string[] { $"MyID" } },{"contents",new  {en = "Are you ok?" } },{"headings",new  {en = "Ehi" } },{"data",new {FromID = 1234} },{"priority",10 },};

通知发送没有任何问题。在我的 Xamarin 应用中,我尝试检测“数据”,这就是问题所在。

        private static void HandleNotificationopened(OSNotificationopenedResult result)
    {

        try
        {
            //Notification data
            OSNotificationPayload payload = result.notification.payload;

            Dictionary<string,object> additionalData = payload.additionalData;

            int NotificationFromID = 0;

            if (additionalData != null)
            {
                if (additionalData.ContainsKey("FromID"))
                {
                    NotificationFromID = (int)additionalData["FromID"]);
                }
            }

            
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex);
        }
        

    }

我收到错误 system.invalidCastException: Specified cast is not valid.

我尝试了所有方法:Convert.ToInt32,我尝试传递一个字符串...但没有任何效果

如果我这样做

Debug.WriteLine(additionalData["FromID"].GetType());

我得到了 Foundation.NSNumber(如果我尝试传递一个字符串)或 Foundation.Nsstring(如果我尝试传递一个字符串)。我猜 NSNumber 和 Nsstring 是 iOS 对象

我该如何解决这个问题? 我只需要传递一个整数值

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)