问题描述
大家好,我正在使用 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 (将#修改为@)